java.lang.NoClassDefFoundError: org.apache.jasper.el.ELContextImpl クラスを初期化できませんでした。
tomcat を起動すると、以下のエラーが発生します。
java.lang.NoClassDefFoundError: Could not initialize class org.apache.jasper.el.ELContextImpl
java.lang.NoClassDefFoundError: Could not initialize class org.apache.jsp.index_jsp
<! -- <scope>provided</scope>Resolve jar conflicts with tomcat itself when deployed -->
<! --Introduce Servlet to start -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<! --Introduce end of servlet -->
<! --Introduce JSTL to start -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
などのエラー
最初はjarが足りないか、jarの競合かと思いました。EL式でページを実行すると,Could not initialize class org.apache.jasper.el.ELContextImpl というエラーが表示されます.
その後、pom.xml の修正を続け、tomcat 自体が servler と他の jar パッケージを持っていることがわかった。
私はspringbootを使っていて、外部のtomcatを使っているので、pomからspringboot自身のtomcatを除外し、servlerなどのjarパッケージを追加する必要があります。
<! -- activiti -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
<exclusions>
<! -- exclude juel-spi, will have conflicts with jars like servlet, jsp, etc. under tomcat -->
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-spi</artifactId>
</exclusion>
</exclusions>
</dependency>
jarのコンフリクトが発生する可能性が高いです。
いろいろと修正した結果、実はここではtomcatとのjarコンフリクトではないのですが、経験から言うと、どこかでtomcatとのjarコンフリクトが起きているはずです
そこで、大きなプロジェクトが登場します。あらゆるpom依存を試し、削除して再挑戦し、ようやく見つけることができました。
問題は、activitiのワークフロー内で参照されるjarが競合していることです。springbootであろうと、普通のspringmvcプロジェクトであろうと、activiti 6.xを使うなら、juel-spiというものを使うことになります。
プロセスの検索: eclipse 開発ツール ctrl+mouse クリック activiti その依存性、関連する activiti 依存性ページ
次に、Ctrl+マウスでエンジンをクリックします。
最後に、上の丸で囲った画像をクリックすると、紹介文が表示されます。
ここでは、あなたが興味を持っている場合は、中に入るために再びクリックして、多くの、多くのものが内部に導入されていることを確認することができますされません
pomの依存関係がどのように導入されているかを見るには、pomファイルを見る方法をクリックして、赤枠のボタンのメニューバーをクリックするだけでも可能です
第一の解決策: tomcatを7に、activitiを5.xに
2つ目:juel-spiとtomcat自身のjarのコンフリクトを排除する。
2つ目に使ったのは
<! -- activiti -->
<dependency>
<groupId>org.activiti</groupId>
<artifactId>activiti-spring-boot-starter-basic</artifactId>
<version>6.0.0</version>
<exclusions>
<! -- exclude juel-spi, will have conflicts with jars like servlet, jsp, etc. under tomcat -->
<exclusion>
<groupId>de.odysseus.juel</groupId>
<artifactId>juel-spi</artifactId>
</exclusion>
</exclusions>
</dependency>
プロジェクト起動、成功。もうエラー報告はありません。正常なアクセスです。疲れた~このエラーレポートは、アクティヴィティと関連する気配がない
この問題は、他の依存関係が tomcat と競合し、このエラーを報告することを妨げるものではありません。私の場合は、activitiが原因です。
関連
-
スレッド "main "での例外をEclipseで解決 java.lang.Error: 未解決のコンパイル問題、コンパイラとパッケージの不整合
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
Eclipseで "XXXX "の解決策を(型に)解決することができない
-
JavaMailのメール送信が失敗するケースとその説明の分析
-
Java コンパイルエラー - スレッド "main" で例外 java.lang.Error: 未解決のコンパイル問題です。
-
spring-boot 401 このリソースにアクセスするには完全な認証が必要です エラー解決
-
javaでよく使われる英単語
-
Android TextViewの行間解析
-
引数型[java.lang.String]の名前がありません..........................。.バグ処理
-
javaException: 比較メソッドが一般契約に違反しています!
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
springboot project MIMEタイプ text/htmlで転送された静的ファイルを読み込む。
-
Java Exceptionが発生しました エラー解決
-
プロローグでのコンテンツは禁止されています
-
スレッド "main" での例外 java.lang.ArrayIndexOutOfBoundsException: 1
-
が 'X-Frame-Options' を 'deny' に設定しているため、フレーム内にある。
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
IDEA パッケージステートメントの欠落
-
リソースリーク:'sc'がクローズされない
-
java.security.InvalidAlgorithmParameterException: TrustAnchors パラメータは空であってはなりません 解決策
-
Tomcat 8は、「少なくとも1つのJARがTLDをスキャンされたが、TLDが含まれていない」問題を解決します。