使用java.lang.AbstractMethodError将JSTL 1.1升级到1.2失败:javax.servlet.jsp.PageContext.getELContext()Ljavax / el / ELContext

时间:2013-02-25 08:52:52

标签: tomcat jstl tomcat7

我在使用JSTL时遇到错误。请帮帮我。

我在我的tomcat 7中使用jstl-impl-1.2.jar和jstl-api-1.2.jar,我取出了standard.jsp和jstl.jsp,但仍然遇到了这个错误。

错误代码

java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext;
javax.servlet.jsp.jstl.core.LoopTagSupport.unExposeVariables(LoopTagSupport.java:624)

Web.xml中

<web-app 
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">

2 个答案:

答案 0 :(得分:1)

您的/WEB-INF/lib或者更糟糕的是,您的JRE/libJRE/lib/ext受到servletcontainer特定库的污染,例如jsp-api.jar的不同版本和旧版本的servletcontainer make / version 。您需要在webapp /WEB-INF/lib中删除它们。这些库应该由servletcontainer本身提供,在你的情况下是Tomcat。

在您的特定示例中,Tomcat的内部类请求仅存在自JSP 2.1以来的javax.servlet.jsp.PageContext.getELContext()方法,但在JSP API中找不到它,因为您使用的是旧版本的(您的webapp中显然是JSP 2.0或更早版本,它在Tomcat自己的类加载中优先。

换句话说,在将JSTL升级为兼容Tomcat 6的情况之前,Tomcat 7一直像tomcat 5.5或更早版本一样运行。

另见:

答案 1 :(得分:0)

听起来像版本问题,可能是某种冲突的jar文件。请参阅this可能会有帮助。