我正在尝试正确设置我的服务器,以便借助 Jenkins 在其上运行 servlet。webapps 文件夹中有两个 war 文件。一个用于 jenkins,一个用于 apache 的示例。两个文件都运行正常,但尝试访问 localhost:8080 时出现 HTTP 500 错误。
我第一次发现这个错误是在我尝试部署一个 Spring Web 应用程序时。到目前为止,所有操作都失败了,但如果我在笔记本电脑上运行 Web 应用程序,它会运行正常,所以我假设 war 文件和 Web 应用程序本身都没有问题。
我之前尝试部署的 war 文件是否有可能在某个地方引发了问题?
笔记本电脑没有安装 jenkns - jenkins 是否会导致此问题?
我搜索了各种帖子,并尝试在 webapp 目录中的其他文件夹中查找 jar 文件,但一无所获。然后,我删除了除 jenkins 之外的所有 war 文件。Jenkins 可以加载,但主页却无法加载。
谢谢你的帮助。
完整的错误信息是:
HTTP Status 500 - java.lang.ClassCastException: org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
type Exception report
message java.lang.ClassCastException: org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
description The server encountered an internal error that prevented it from fulfilling this request.
exception
org.apache.jasper.JasperException: java.lang.ClassCastException: org.apache.jasper.runtime.ELContextImpl cannot be cast to org.apache.jasper.el.ELContextImpl
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:549)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:470)
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)
root cause
java.lang.ClassCastException: org.apache.jasper.runtime.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)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.42 logs.
当我尝试部署 webapp(在笔记本电脑上运行的 webapp)时收到此消息时,错误行是使用 jstl 的地方,但在这种情况下,webapp 不再在服务器上,我只是尝试访问本地主机。
答案1
已部署的应用可能已包含其自己的版本。从应用目录中jasper.jar
删除。请参阅jasper.jar
/WEB-INF/lib
https://stackoverflow.com/questions/12384779/org-apache-jasper-el-elcontextimpl-cannot-be-cast-to-org-apache-jasper-runtime-e了解更多详情。