数週間前に動作していたサーブレットを使用してプロジェクトを実行しようとしています (それ以降、変更は行われていません)。ただし、実行すると、次のエラーが発生します。
java.lang.ClassNotFoundException: javax.el.StaticFieldELResolver
this oneなどの同様の質問を見てきましたが、それらの解決策はうまくいきませんでした。私は次のことを試みましたが失敗しました:
- JDK 1.7 および Apache Tomcat 7.0.41.0 以外のすべてのライブラリ参照を削除する
web.xml
ファイルを 2.5 から 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">
sun-web.xml
ファイルを 2.5 から 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 は、Java 7 で Apache Tomcat 7.0.41.0 を実行する NetBeans 7.4 です。
アップデート:
奇妙なことに、Tomcat の代わりに GlassFish で実行することを選択すると、エラーなしで実行されます。したがって、Tomcat サーバーと何らかの関係があるはずです。