有例外。春季3与Spring Tool Suite,Tomcat 7和Maven

时间:2011-09-29 11:35:39

标签: java eclipse spring maven tomcat7

我是Spring 3的新手。我新安装了Eclipse Indigo,Spring Tool Suite。 使用Spring Tool Suite“Spring Template - > Spring MVC project”。我创建了一个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)

设置有什么问题

3 个答案:

答案 0 :(得分:1)

el-api.jar

中删除所有WEB-INF/lib

如果您在IDE中运行,则最多应el-api.jar provided范围。即便如此,它仍可能失败,因为IDE有时不考虑范围。我认为m2e-wtp插件应该修复它。

答案 1 :(得分:1)

这是因为使用JSP 2.1为Tomcat 6.0创建模板,而Tomcat 7.0与JSP 2.2一起使用。 正如您在此页面中看到的: http://tomcat.apache.org/whichversion.html

我尝试在pom.xml中更改jsp jar为2.2并添加el-api 2.2。但它没有实现。我找不到最后的问题。

最后我选择使用tomcat 6.

此致

答案 2 :(得分:0)

我遇到了同样的问题并通过编辑POM解决了这个问题,将jsp-api版本从2.1更改为2.2

    <dependency>
        <groupId>javax.servlet.jsp</groupId>
        <artifactId>jsp-api</artifactId>
        <version>2.2</version>  <!-- 2.1 for Tomcat 6, 2.2 for Tomcat 7 -->
        <scope>provided</scope>
    </dependency>