可能重复:
org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.runtime.ELContextImpl
我在war文件中从Eclipse导出一个Web服务项目(包含jsp页面),并将其部署在Jetty 8.1.5中。它在我的机器上工作正常。但是在另一台机器(Windows Server 2003)上在Jetty 8.1.3上部署相同的war文件后,当我转到index.jsp页面时,它会出现HTTP Error 500和以下异常:
org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.runtime.ELContextImpl
我在两天前发布的this question中的完整跟踪和更多详细信息。虽然我在WEB_INF/lib
中拥有的所有广告都是在这两个屏幕截图中提供的:
两天在互联网上寻找解决方案导致了解问题是由战争文件中装运的罐子和其他罐子之间的冲突造成的(我猜是码头罐子)。
问题是:我怎样才能找出导致问题的罐子?我尝试浏览这些罐子的内容,寻找班级ElContextImpl
,但没有找到任何东西?
有什么想法吗?
编辑:
我尝试将我当地的整个Jetty 8.1.5复制到服务器并从那里修改了码头..但仍然没有成功。
答案 0 :(得分:1)
您的WAR文件包含一些不必要的JAR,例如servlet-api-2.4.jar
,它们应该是Jetty安装的一部分(可能在另一个版本中)。
乍一看,您应该删除所有jetty-*.jar
,servlet-api-2.4.jar
,javax.servlet.*.jar
。如果您从8.1.5 Jetty安装中获取了这些内容,则可能会导致与8.1.3安装冲突。