Rumah  >  Artikel  >  Java  >  Bagaimana untuk Membetulkan \"Pengecualian Teg Bait Tidak Sah\" dalam Tomcat 7 apabila Menaik taraf ke Java 8?

Bagaimana untuk Membetulkan \"Pengecualian Teg Bait Tidak Sah\" dalam Tomcat 7 apabila Menaik taraf ke Java 8?

DDD
DDDasal
2024-10-28 15:26:02770semak imbas

 How to Fix

Pengecualian Teg Byte Tidak Sah dalam Tomcat 7 dengan Java 8

Apabila mengalihkan aplikasi web dari Tomcat 7 dan Java 7 ke pelayan lain yang menjalankan Tomcat 7 dan Java 8, ralat mungkin berlaku semasa permulaan:

org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15

Pengecualian ini berpunca daripada BCEL, perpustakaan kejuruteraan kod bait Java yang digunakan oleh Tomcat. Khususnya, pengimbasan anotasi (dengan metadata-complete="true" dalam web.xml) boleh mencetuskan isu disebabkan ketidakupayaan BCEL untuk memproses kod Java 8 bait tertentu.

Penyelesaian:

1. Lumpuhkan Pengimbasan Anotasi:

Jika pengimbasan anotasi tidak penting, ia boleh dilumpuhkan dengan menetapkan metadata-complete="false" dalam web.xml.

2. Tomcat 7.0.53 atau Kemudian:

Tomcat 7.0.53 dan keluaran seterusnya termasuk pengkompil yang dikemas kini dengan sokongan Java 8 yang dipertingkatkan. Menaik taraf kepada versi ini sepatutnya menyelesaikan pengecualian.

3. Langkau Java 8 JARs untuk Pengimbasan Anotasi (Lanjutan):

Jika pengimbasan anotasi diperlukan dan aplikasi web bukan berasaskan Java 8, tambahkan baris berikut ke /etc/tomcat7/catalina.properties:

junit.jar,junit-*.jar,ant-launcher.jar,\jfxrt.jar,nashorn.jar

Barisan ini mengarahkan Tomcat untuk mengabaikan Java 8 JAR tertentu semasa pengimbasan anotasi.

Atas ialah kandungan terperinci Bagaimana untuk Membetulkan \"Pengecualian Teg Bait Tidak Sah\" dalam Tomcat 7 apabila Menaik taraf ke Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn