概述
今天在VPN上解决其它问题时突然遇到了这么一个奇怪的错误,异常大约如下所示(其它相似异常也可能是该问题):
exception
javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;
" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext,
have different Class objects for the type javax/el/ExpressionFactory used in the signature
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:343)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
root cause
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
org.apache.jsp.index_jsp._jspInit(index_jsp.java:31)
org.apache.jasper.runtime.HttpJspBase.init(HttpJspBase.java:49)
org.apache.jasper.servlet.JspServletWrapper.getServlet(JspServletWrapper.java:180)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369)
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:722)
如果将Web应用移出Tomcat的webapps目录再启动Tomcat则页面可以正常访问,将web项目放进去再访问就报错,后来Google了一下,发现是jar包问题(在此鄙视一下百度),就是说我们自己的应用中不应该包含WEB服务相关的jar包,即 /WEB-INF/lib 目录下不能出现诸如 jsp-api.jar、el-api.jar、servlet-api.jar 等jar包,于是我到自己项目的lib下查看,果然有几个这样的包,如下:
- jstl-1.2.jar
- jsp-api-2.1-6.1.14.jar
- jsp-2.1-6.1.14.jar
- jsf-impl.jar
- jsf-api.jar
- jsr305-1.3.9.jar
于是我将相关的包删除后,再启动tomcat,可以正常访问。
在此记录一下。
最后
以上就是发嗲烧鹅为你收集整理的解决访问Tomcat时报java.lang.LinkageError错误的全部内容,希望文章能够帮你解决解决访问Tomcat时报java.lang.LinkageError错误所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复