代码之家  ›  专栏  ›  技术社区  ›  jeff

NoClassDefFoundError:javax/servlet/jsp/el/ELException

  •  3
  • jeff  · 技术社区  · 13 年前

    java.lang.NoClassDefFoundError: javax/servlet/jsp/el/ELException

    从使用

    <c:set var="testVar" value="testVal" />

    所有其他JSTL标记都可以工作。

    jsp 1.2版
    Java 1.4版

    但是,当我在全局容器中查看这个jsp时,上面的方法是有效的。换句话说,IT部门在server.xml文件中创建了一个条目来注册我的web应用程序。在我的web应用程序空间中,我得到了上述错误。但是如果当jsp文件位于这个web应用程序文件夹之外时我查看它,它会工作得很好,我猜是服务器的某种默认wep应用程序。

    在我的web应用程序库文件夹中,我有jstl.jar和standard.jar库,在开发locall时,我在Eclipse中使用它们。我的Eclipse环境被设置为模拟过时的生产服务器的java和jsp版本。

    2 回复  |  直到 13 年前
        1
  •  4
  •   BalusC    13 年前

    您对servletcontainer使用的JSTL版本太新了。为JSP 1.2设计的jstl1.0具有 ELException 包含在JSTL JAR文件中。为JSP 2.0设计的JSTL 1.1不再包含它,因为它与几个EL特定的类一起移动到jsp2.0api(由servletcontainer本身提供)。

    当您在JSP 1.2容器上运行jstl1.1时,它会抱怨 电异常 缺少,因为JSP 1.2不提供它。

    因此,要解决问题,请将JSTL版本降级到1.0。有空的 here .

        2
  •  0
  •   duffymo    13 年前

    Java1.4已经很老了。

    我将验证您正在使用的standard.jar和jstl.jar的版本,因为URI从一个版本更改为另一个版本。我想知道您的本地机器和服务器上是否有不同版本的JSTL JARs。

    我强烈建议升级JDK。甚至JDK 5也已经到了支持寿命的尽头。你用JDK1.4在薄冰上滑冰。