1

数週間前に動作していたサーブレットを使用してプロジェクトを実行しようとしています (それ以降、変更は行われていません)。ただし、実行すると、次のエラーが発生します。

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_HOMETomcat ディレクトリを指すように環境変数を設定する

使用されている IDE は、Java 7 で Apache Tomcat 7.0.41.0 を実行する NetBeans 7.4 です。

アップデート:

奇妙なことに、Tomcat の代わりに GlassFish で実行することを選択すると、エラーなしで実行されます。したがって、Tomcat サーバーと何らかの関係があるはずです。

4

2 に答える 2

2

このクラスjavax.el.StaticFieldELResolverEL 3.0 API の一部です。私の知る限り、Tomcat 7 バージョンでは利用できません。Tomcat 8で利用可能ですが、それはまだ一般提供されていないため、自己責任で使用してください。

あなたは何かを変えたに違いない。

于 2013-11-02T19:53:24.460 に答える