2

可能重复:
org.apache.jasper.el.E​​LContextImpl 不能转换为 org.apache.jasper.runtime.ELContextImpl

我从 Eclipse 中将一个 web 服务项目(包含 jsp 页面)导出到一个 war 文件中,并将其部署在 Jetty 8.1.5 中。它在我的机器上运行良好。但是在另一台机器(windows server 2003)上的 Jetty 8.1.3 上部署相同的 war 文件后,当我转到 index.jsp 页面时,它会给出 HTTP 错误 500 和以下异常:

org.apache.jasper.el.ELContextImpl cannot be cast to org.apache.jasper.runtime.ELContextImpl

我两天前发布的这个问题的完整跟踪和更多细节。WEB_INF/lib虽然这两个屏幕截图中提供了我所拥有的所有罐子:

在此处输入图像描述 在此处输入图像描述

两天在互联网上寻找解决方案导致知道问题是由战争文件中运送的罐子和其他罐子(我猜是码头罐子)之间的冲突引起的。

问题是:如何找出导致问题的 jar?我尝试浏览这些 jar 的内容以寻找类ElContextImpl但没有找到任何东西?有什么想法吗?


编辑:

我尝试将我的本地整个 Jetty 8.1.5 复制到服务器并从那里启动码头..但仍然没有成功。

4

1 回答 1

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 安装发生冲突。

于 2012-09-13T15:29:36.537 回答