ホームページ >Java >&#&チュートリアル >Java 8 にアップグレードするときに Tomcat 7 で「無効なバイト タグ例外」を修正するにはどうすればよいですか?
Java 8 を使用した Tomcat 7 での無効なバイト タグ例外
Web アプリケーションを Tomcat 7 および Java 7 から Tomcat を実行している別のサーバーに移植する場合7 および Java 8 では、起動中にエラーが発生する場合があります:
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
この例外は、Tomcat で使用される Java バイトコード エンジニアリング ライブラリである BCEL に起因します。特に、アノテーション スキャン (web.xml でmetadata-complete="true" を使用) は、BCEL が特定の Java 8 バイト コードを処理できないために問題を引き起こす可能性があります。
解決策:
1.注釈スキャンの無効化:
注釈スキャンが必須ではない場合は、web.xml で metadata-complete="false" を設定することで無効にできます。
2. Tomcat 7.0.53 以降:
Tomcat 7.0.53 以降のリリースには、Java 8 サポートが強化された更新されたコンパイラーが含まれています。これらのバージョンにアップグレードすると、例外が解決されるはずです。
3.注釈スキャンの Java 8 JAR をスキップする (上級):
注釈スキャンが必要で、Web アプリケーションが Java 8 ベースではない場合は、次の行を /etc/tomcat7/catalina.properties に追加します。
junit.jar,junit-*.jar,ant-launcher.jar,\jfxrt.jar,nashorn.jar
この行は、注釈スキャン中に特定の Java 8 JAR を無視するように Tomcat に指示します。
以上がJava 8 にアップグレードするときに Tomcat 7 で「無効なバイト タグ例外」を修正するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。