我正在尝试使用几周前工作的 servlet 运行一个项目(此后没有进行任何修改)。但是,当我运行它时,我现在收到以下错误:
java.lang.ClassNotFoundException: javax.el.StaticFieldELResolver
我已经看到过类似的问题,例如this one,但他们的解决方案对我不起作用。我尝试了以下失败:
- 删除除 JDK 1.7 和 Apache Tomcat 7.0.41.0 之外的所有其他库引用
- 将文件从 2.5 更新
web.xml
到 3.0:<web-app version="3.0" 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">
- 将文件从 2.5 更新
sun-web.xml
到 3.0:<!DOCTYPE sun-web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.0 Servlet 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-web-app_3_0-0.dtd">
- 验证 Tomcat 库是否包含
el-api.jar
和jsp-api.jar
- 设置
CATALINA_HOME
环境变量指向Tomcat目录
正在使用的 IDE 是运行 Apache Tomcat 7.0.41.0 和 Java 7 的 NetBeans 7.4。非常感谢任何帮助。
更新:
奇怪的是,如果我选择用 GlassFish 而不是 Tomcat 运行它,它运行时不会出错。所以肯定和Tomcat服务器有某种关系。