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

时间:2010-11-16 22:15:58

标签: java web-applications

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应用程序li​​b文件夹中,我有开发locall时在Eclipse中使用的jstl.jar和standard.jar库。我的Eclipse环境设置为模仿我们过时的生产服务器的java和jsp版本。

2 个答案:

答案 0 :(得分:4)

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

当您在JSP 1.2容器上运行JSTL 1.1时,它会抱怨ELException丢失,因为JSP 1.2无法使用它。

因此,要解决您的问题,请将JSTL版本降级到1.0。它可用here

答案 1 :(得分:0)

Java 1.4很老了。

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

我强烈建议您升级JDK。甚至JDK 5也已达到其支持寿命的终点。你正在使用JDK 1.4在非常薄的冰上滑冰。