ClassNotFoundException:com.sun.el.E​​xpressionFactoryImpl:エラーの原因と解決策



Classnotfoundexception



次のエラーの発生を大幅に加速します:(springboot + springmvc +休止状態の場合、jspアクセスが表示されますついに間違った理由と解決策、)。

java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.loadClass(TomcatEmbeddedWebappClassLoader.java:68) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar:2.2.0.BUILD-SNAPSHOT] at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at javax.el.FactoryFinder.newInstance(FactoryFinder.java:83) ~[el-api-2.2.jar:na] at javax.el.FactoryFinder.find(FactoryFinder.java:193) ~[el-api-2.2.jar:na] ...... Caused by: javax.el.ELException: Provider com.sun.el.ExpressionFactoryImpl not found at javax.el.FactoryFinder.newInstance(FactoryFinder.java:97) ~[el-api-2.2.jar:na] at javax.el.FactoryFinder.find(FactoryFinder.java:193) ~[el-api-2.2.jar:na] ...... Caused by: java.lang.ClassNotFoundException: com.sun.el.ExpressionFactoryImpl at org.springframework.boot.web.embedded.tomcat.TomcatEmbeddedWebappClassLoader.loadClass(TomcatEmbeddedWebappClassLoader.java:68) ~[spring-boot-2.2.0.BUILD-SNAPSHOT.jar:2.2.0.BUILD-SNAPSHOT] at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1188) ~[tomcat-embed-core-9.0.22.jar:9.0.22] at javax.el.FactoryFinder.newInstance(FactoryFinder.java:83) ~[el-api-2.2.jar:na] ... 52 common frames omitted

次に、私のpom.xmlを見てください

4.0.0 org.springframework.boot spring-boot-starter-parent 2.2.0.BUILD-SNAPSHOT war com.nbc springboot_activiti_demo 0.0.1-SNAPSHOT springboot_activiti_demo Spring Boot Activiti Demo 1.8 UTF-8 5.22.0 5.22.0 1.9.4 2.8.2 0.9.5.2 2.7.5 5.2.0.Final 5.2.0.Final 5.1.0.Final 1.0.1.Final 2.2.0 4.12 1.2 5.2.0.BUILD-SNAPSHOT 4.0 4.0.0 junit junit ${junit.version} test com.google.code.gson gson ${gson.version} com.microsoft.sqlserver sqljdbc4 ${sqlserver.version} com.mchange c3p0 ${c3p0.version} org.springframework spring-orm ${spring.version} org.hibernate hibernate-core ${hibernate.core.version} org.hibernate hibernate-ehcache ${hibernate.ehcache.version} org.hibernate.common hibernate-commons-annotations ${hibernate.annotations.version} org.hibernate.javax.persistence hibernate-jpa-2.0-api ${hibernate.jpa.api.version} spring-milestones Spring Milestones https://repo.spring.io/milestone spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true

pom.xmlの上に問題がありますか?そうでない場合は、以下を引き続き監視します。

これが間違っていると報告しました。私はBaiduに少しエラーメッセージを表示しました:ClassNotFoundException:com.sun.el.E​​xpressionFactoryImpl

一部の記事では、これはjarパッケージの競合であり、el.jarを削除すると述べていますが、これは不可能だと思います。pom.xmlはlibディレクトリel.jarを生成するように構成されていませんが、説明ではなくel.jarwarパッケージがあります。 el.jarユーザーが独自に構成可能。したがって、jarパッケージの競合の議論は成り立たず、1つずつ除外されて2日間従事し、最終的にHibernate jarパッケージを導入するには不十分であることが判明したので、上記のpom.xmlHibernate構成が間違っているかどうかを注意深く確認してください。間違っているかどうかわからないので、私は少しHibernateに必要なjarパッケージをBaiduし、次のjarパッケージのHibernate構成を最後に変更しました。

5.1.0.Final org.hibernate hibernate-core ${hibernate.version} org.hibernate hibernate-entitymanager ${hibernate.version} org.hibernate hibernate-osgi ${hibernate.version} org.hibernate hibernate-envers ${hibernate.version} org.hibernate hibernate-c3p0 ${hibernate.version} org.hibernate hibernate-proxool ${hibernate.version} org.hibernate hibernate-infinispan ${hibernate.version} org.hibernate hibernate-ehcache ${hibernate.version}

springbootプロジェクトを再起動し、jspsuccessにアクセスします。

総括する:

springbootエラー:原因:java.lang.ClassNotFoundException:com.sun.el.E​​xpressionFactoryImpl

1つの理由:Hibernate依存のjarパッケージが不完全なものを導入します(Hibernate依存の一部が欠落しています)

解決策:完全なHibernate依存関係を追加します。 (上記のように)