ホームページ  >  記事  >  Java  >  Java 8 にアップグレードするときに Tomcat 7 で「無効なバイト タグ例外」を修正するにはどうすればよいですか?

Java 8 にアップグレードするときに Tomcat 7 で「無効なバイト タグ例外」を修正するにはどうすればよいですか?

DDD
DDDオリジナル
2024-10-28 15:26:02770ブラウズ

 How to Fix

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。