HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot be cast to...

刚到公司实习,导入项目到eclipse中,部署到tomcat运行后,控制台报错

java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
	org.apache.jasper.runtime.PageContextImpl.proprietaryEvaluate(PageContextImpl.java:1023)
	org.apache.jsp.index_jsp._jspService(index_jsp.java:85)
	org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
	org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
	org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
	org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
	javax.servlet.http.HttpServlet.service(HttpServlet.java:728)

在网上搜了下,说是因为项目中lib中的jar包和tomcat下lib的jar冲突了,所以报
java.lang.ClassCastException: org.apache.catalina.util.DefaultAnnotationProcessor错误
解决方案为:
修改tomcat目录下的conf/context.xml如下:
<?xml version='1.0' encoding='utf-8'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- The contents of this file will be loaded for each web application -->
<Context>
    <Loader delegate="true" />

    <!-- Default set of monitored resources -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--
    <Manager pathname="" />
    -->

    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <!--
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->

</Context>
加入了上面的粗体配置后,重启tomcat没有报错!

但是,再一次启动tomcat时,还会报
java.lang.ClassCastException: org.apache.catalina.util.DefaultAnnotationProcessor
非常疑惑,找到之前修改的配置文件
context.xml,修改的内容没有了,配置文件重置了!
最后,网上再次查找,解决方案如下:

1. 在工作空间server 目录下查找tomcat 下面的context.xml 。我的路径是D:\Develop\workspace\Servers\Tomcat v7.0 Server at localhost-config 。下面有 context.xml,修改此文件。

2. 删除Tomcat 目录下server中catalina的相关项目。我的路径是D:\apache\apache-tomcat-7.0.56\work\Catalina\localhost\ 。将报错项目fund删除即可。

下次重启Tomcat 时,此项目就使用新的context.xml 文件了。

最后,完美解决问题!

 

第二次更新,本来以上解决方法可以解决,但是好像重启tomcat后还是会不行!

最终找到了终极解决方法!适用于eclispe

新建Tomcat后,在Package Expplorer中会出现一个Servers的项目,如下图

 

 

我们打开context.xml配置文件

 

在这个文件中添加之前说的一句话

最终,再没有出现过这个问题!

 

转载于:https://www.cnblogs.com/guodong-wang/p/7999289.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值