Java 8 を搭載した Tomcat 7 で「定数プール内のバイト タグが無効です: 15」という例外が発生するのはなぜですか?
Java 8 を使用した Tomcat 7 での「定数プールの無効なバイト タグ: 15」例外
Tomcat 7 は Java 8 と正式に互換性があります。ただし、Web アプリケーションを Java 6 を使用した Tomcat 7 から Java 8 を使用した別の Tomcat 7 サーバーに移行する場合、ユーザーは次の例外に遭遇する可能性があります:
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
考えられる原因
この例外は、Java 8 を使用した Tomcat 7 の BCEL (バイト コード エンジニアリング ライブラリ) の問題が原因で発生します。BCEL は、特に注釈スキャンが有効になっている場合 (web.xml でmetadata-complete="true") に、新しい Java 8 バイト コードの処理に問題が発生します。 ).
解決策
注釈スキャンなし:
注釈スキャンが利用されていない場合、問題は次の方法で解決できます。 Tomcat 7 をリリース 7.0.53 以降に更新すると、Java 8 サポートが強化された更新されたコンパイラが含まれます。
注釈スキャン:
注釈スキャンが有効になっている場合、 2 つの選択肢があります:
- 問題ライブラリを除外する: 次の行を /etc/tomcat7/catalina.properties に追加します:
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
This指定されたライブラリのスキャンをスキップするように Tomcat に指示します。
- 注釈スキャンを無効にする: 注釈スキャンを無効にするには、web.xml から「metadata-complete="true"」を削除します。
追加メモ:
- この特定の問題は、Oracle JDK 8_25 を搭載した Debian 7.6 上の Tomcat 7.0.28 で発生しました。
- Tomcat 7 は Java 8 と互換性があるという回答」は引き続き有効です。ただし、注釈スキャンが有効になっている場合、BCEL の問題が発生する可能性があります。
以上がJava 8 を搭載した Tomcat 7 で「定数プール内のバイト タグが無効です: 15」という例外が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











2025年のトップ4 JavaScriptフレームワーク:React、Angular、Vue、Svelte

カフェインやグアバキャッシュなどのライブラリを使用して、Javaアプリケーションにマルチレベルキャッシュを実装するにはどうすればよいですか?

Javaのクラスロードメカニズムは、さまざまなクラスローダーやその委任モデルを含むどのように機能しますか?

Spring Boot Snakeyaml 2.0 CVE-2022-1471問題修正

キャッシュや怠zyなロードなどの高度な機能を備えたオブジェクトリレーショナルマッピングにJPA(Java Persistence API)を使用するにはどうすればよいですか?

高度なJavaプロジェクト管理、自動化の構築、依存関係の解像度にMavenまたはGradleを使用するにはどうすればよいですか?
