您的位置:首页 > 编程语言 > Java开发

javax.servlet.ServletException: java.lang.LinkageError: loader constraint violation:when resolving interface method "javax.servlet.jsp

2013-01-22 11:38 731 查看
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)


[/code]
That will happen when you include server-specific libraries of a different server make/version in the
/WEB-INF/lib
of your web application, such as
jsp-api.jar
,
el-api.jar
,
servlet-api.jar
, etc. You need to remove them all. The
/WEB-INF/lib
should not contain any server-specific libraries. They belongs in the specific server itself (Tomcat has them in its
/lib
folder already).

This is by the way a pretty common beginner's mistake whenever they encounter compilation errors on the JSP/Servlet API in their IDE project. This should have been solved differently, namely by integrating the server in the IDE and adding the server as "Target runtime" to the project.

一句话 就是你不能在项目的lib目录中再包含 服务器类提供过jar 比如
jsp-api.jar
,
el-api.jar
,
servlet-api.jar
, 等等

See also:

How do I import the javax.servlet API in my Eclipse project?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐