【发布时间】:2011-11-27 15:28:51
【问题描述】:
我是 Spring 3 的新手。我新安装了 Eclipse Indigo,Spring Tool Suite。 使用 Spring 工具套件“Spring 模板 --> Spring MVC 项目”。我创建了一个 Hello world 应用程序。
运行应用程序时。它给出了一个例外。
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:181)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:370)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:389)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:333)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
设置有什么问题
【问题讨论】:
-
Bozho 是对的,问题在于您有第二个 el-api.jar。但如果它是用
<scope>provided</scope>定义的,则依赖项必须来自其他地方。但要验证这一点,我建议您通过 maven 构建应用程序,然后手动部署战争(不使用 IDE)。如果异常没有消失,请检查未提供的其他依赖项是否依赖于el-api.jar(STS、pom.xml、依赖层次结构选项卡) -
Bozho 我尝试根据您的指导启用 m2e-wtp 设置。但是我的 Eclipse 被绞死了。所以尝试了拉尔夫的选择。在Tomcat中手动部署了WAR文件并试了一下。错误消失了。注意:我必须删除 pom.xml 中 el-api.jar 的
标签。 -
WAR 是否与提供的 el-api 和范围一起使用?
标签: java eclipse spring maven tomcat7