NoClassDefFoundError:javax/servlet/jsp/el/ELException

NoClassDefFoundError:javax/servlet/jsp/el/ELException,java,web-applications,Java,Web Applications,java.lang.NoClassDefFoundError:javax/servlet/jsp/el/ELException 从使用 所有其他JSTL标记都可以工作 jsp 1.2 Java 1.4 然而,当我在全局容器中查看这个jsp时,上面的方法是有效的。换句话说,IT部门在server.xml文件中创建了一个条目来注册我的web应用程序。正是在我的web应用程序空间中,我得到了上述错误。但是如果我在jsp文件位于这个web应用程序文件夹之外时查看它,我想在服务器的某种默认wep应用程序

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

从使用

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

jsp 1.2
Java 1.4

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


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

Java1.4非常古老

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


我强烈推荐JDK升级。甚至JDK5也已经到了它的支持生命的尽头。您在使用JDK1.4时如履薄冰。

您在servletcontainer中使用的JSTL版本太新了。JSTL 1.0是为JSP1.2设计的,它的类
ELException
包含在JSTL JAR文件中。为JSP2.0设计的JSTL 1.1不再包含它,因为它与几个特定于EL的类一起移动到了JSP2.0API(由servletcontainer本身提供)

当您在JSP1.2容器上运行JSTL 1.1时,它会抱怨缺少
ELException
,因为它在JSP1.2中不可用


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

我还强烈建议升级。然而,根据他的问题记录,他不幸受到了高层管理人员的限制。请参阅上的评论。感谢您的回复。我们的IT部门能够迅速更新所有员工的机器。我的桌面有jre1.6.0_22。出于某种原因,他们不会在web服务器上更新java。它说他们不需要在服务器上安装1.6,而且他们不想确保其他应用程序可以处理更新的Java:(告诉您的IT部门,即使升级到JDK 5并使用-server选项,也会为每个使用它的应用程序带来很好的速度提升。JDK 5对内存模型和代码的运行时优化进行了重大更改。他们坚持使用JDK 1.4,从而阻碍了进度。听起来应该有人开始开发r回归测试套件。