Teg Byte Tidak Sah dalam Kolam Malar: Isu Tomcat dengan Java 8
Menghadapi ralat "Teg bait tidak sah dalam kumpulan malar: 15" apabila cuba memindahkan aplikasi web dari Tomcat 7 ke pelayan lain yang menjalankan Tomcat 7 dengan Java 8? Artikel ini menyelami isu ini dan menawarkan penyelesaian.
Penerangan Isu:
Setelah memulakan Tomcat, aplikasi mungkin menghadapi ralat seperti yang dilihat dalam log catalina.out:
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
Punca Berkemungkinan:
Ralat timbul kerana Java 8 memperkenalkan kod bait baharu yang BCEL, perpustakaan penghuraian kelas yang digunakan oleh Tomcat 7, mungkin tidak dapat memproses dengan berkesan.
Penyelesaian:
Penyelesaian Rasmi:
Menurut dokumentasi Tomcat, menjalankan Tomcat 7 di Java 8 sepatutnya berfungsi dengan baik.
Isu Pengimbasan Anotasi:
Walau bagaimanapun, jika pengimbasan anotasi didayakan dalam fail web.xml aplikasi web, isu mungkin timbul disebabkan ketidakupayaan BCEL untuk mengendalikan kod Java 8 bait. Dalam kes sedemikian, pengecualian seperti di bawah mungkin muncul:
SEVERE: Unable to process Jar entry [jdk/nashorn/internal/objects/NativeString.class] from Jar [jar:file:/usr/lib/jvm/jdk1.8.0_5/jre/lib/ext/nashorn.jar!/] for annotations org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
Penyelesaian untuk Pengimbasan Anotasi:
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
Pengubahsuaian ini memastikan Tomcat melangkau balang yang bermasalah semasa pengimbasan anotasi.
Atas ialah kandungan terperinci \"Teg Bait Tidak Sah dalam Kolam Malar: 15\" - Mengapa Tomcat 7 Membuang Ralat Ini Apabila Berjalan pada Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!