開発者ドキュメント

java.lang.ClassNotFoundException:javax.el.E​​xpressionFactory

問題

TomcatにデプロイされたJava Webアプリケーションは、次のエラーメッセージを表示します。

javax.servlet.ServletException: java.lang.NoClassDefFoundError: javax/el/ExpressionFactory
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:268)
   //...
java.lang.ClassNotFoundException: javax.el.ExpressionFactory
    java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    java.security.AccessController.doPrivileged(Native Method)
    java.net.URLClassLoader.findClass(URLClassLoader.java:188)
   //...
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.

解決策



javax.el.E​​xpressionFactory

“クラスは ”

el-api.jar

“ライブラリに属しています.Maven Centralリポジトリからダウンロードできます。

<dependency>
    <groupId>org.glassfish.web</groupId>
    <artifactId>el-impl</artifactId>
    <version>2.2</version>
</dependency>

代替ソリューション

場合によっては、 ”

el-api.jar

“ファイルが含まれていてもTomcatは同じエラーメッセージを表示することがあります。次に、J2EE標準のAPIライブラリ ”

javaee.jar

“をインクルードしてみてください。 ”

javax.el.E​​xpressionFactory

“クラスも含まれていますが、少なくともこれは私の仕事です。

Eclipse IDEの場合

デバッグ中の場合は、サーバインスタンスが `javaee.jar`ファイルを見つけることができることを確認してください。



または、次の手順で自分で追加することもできます

  1. サーバーインスタンスをダブルクリックします.

  2. “Open launch configuration”をクリックします.

  3. “Bootstrap Entries”に `javaee.jar`を追加してください.

リファレンス

  1. リンク://maven/how-to-download-j2ee-api-javaee-jar-from-maven/[How to

Mavenからjavaee.jarをダウンロード]

リンク://タグ/jsf2/[jsf2]

モバイルバージョンを終了