java.lang.ClassNotFoundException:javax.el.ExpressionFactory
問題
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.ExpressionFactory
“クラスは ”
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.ExpressionFactory
“クラスも含まれていますが、少なくともこれは私の仕事です。
Eclipse IDEの場合
デバッグ中の場合は、サーバインスタンスが `javaee.jar`ファイルを見つけることができることを確認してください。
または、次の手順で自分で追加することもできます
-
サーバーインスタンスをダブルクリックします.
-
“Open launch configuration”をクリックします.
-
“Bootstrap Entries”に `javaee.jar`を追加してください.
リファレンス
-
リンク://maven/how-to-download-j2ee-api-javaee-jar-from-maven/[How to
Mavenからjavaee.jarをダウンロード]
リンク://タグ/jsf2/[jsf2]