今天在VPN上解决其它问题时突然遇到了这么一个奇怪的错误,异常大约如下所示(其它相似异常也可能是该问题):
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18exception 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内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复