【问题标题】:Upgrading JSTL 1.1 to 1.2 fails with java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext将 JSTL 1.1 升级到 1.2 失败并出现 java.lang.AbstractMethodError: javax.servlet.jsp.PageContext.getELContext()Ljavax/el/ELContext
【发布时间】:2013-02-25 08:52:51
【问题描述】:

我在使用 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">

【问题讨论】:

    标签: tomcat jstl tomcat7


    【解决方案1】:

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

    在您的特定示例中,Tomcat 的内部类请求 javax.servlet.jsp.PageContext.getELContext() 方法,该方法仅从 JSP 2.1 开始存在,但无法在 JSP API 中找到,因为您使用的是旧版本(显然是 JSP 2.0 或更早版本)在您的 web 应用程序中,其类加载优先于 Tomcat 自己的。

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

    另见:

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-03-16
        • 1970-01-01
        • 2016-03-04
        • 1970-01-01
        • 1970-01-01
        • 2017-09-30
        • 2018-11-29
        相关资源
        最近更新 更多