您的位置:首页 > 运维架构 > Tomcat

jetty、tomcat启动发生异常 java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl

2015-11-09 15:29 976 查看
公司原来web项目是在tomcat 下运行 包括tomcat运行环境在内所有的jar都放到目录WEB-INF/lib下,一切正常,切换到jetty(9.3)以后启动报错

java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpl


查了一下 原来是因为 serlet容器jar冲突导致

以下摘自http://stackoverflow.com 一篇 提问,说得很好,

That can happen if your webapp ships with servletcontainer-specific JAR files such as 
jasper.jar
jetty.jar
 
servlet.jar
,
etc in the 
/WEB-INF/lib
 for
some unclear reason. This is in turn conflicting with with a different versioned JAR file on the target servletcontainer.

Remove that servletcontainer-specific JAR file from your webapp's 
/WEB-INF/lib
.
It doesn't belong there. It's supposed to be already supplied by the servletcontainer itself.
原文

解决办法,删除项目目录下 有关 jasper servlet的jar  依赖容器本身的jar运行,避免冲突。原文解释中有一句话 “ It doesn't belong there.”,我觉得
这句话很关键,提醒我们该谁管的就该谁去管,别瞎往一起整,呵呵。

感叹一下做这个web项目框架整合的哥们。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  tomcat jetty 异常 web java