Rumah >Java >javaTutorial >Mengapakah saya Mendapat \'Teg Bait Tidak Sah dalam Kolam Malar: 15\' Pengecualian dalam Tomcat 7 dengan Java 8?
"Teg Byte Tidak Sah dalam Kolam Malar: 15" Pengecualian dalam Tomcat 7 dengan Java 8
Tomcat 7 secara rasminya serasi dengan Java 8. Walau bagaimanapun, apabila memindahkan aplikasi web daripada Tomcat 7 dengan Java 6 ke pelayan Tomcat 7 lain dengan Java 8, pengguna mungkin menghadapi pengecualian berikut:
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
Punca Kemungkinan
Pengecualian ini berlaku disebabkan oleh isu BCEL (Byte Code Engineering Library) dalam Tomcat 7 dengan Java 8. BCEL menghadapi kesukaran memproses kod Java 8 byte baharu, terutamanya apabila pengimbasan anotasi didayakan (metadata-complete="true" dalam web.xml ).
Penyelesaian
Tiada Pengimbasan Anotasi:
Jika pengimbasan anotasi tidak digunakan, isu itu boleh diselesaikan dengan mengemas kini Tomcat 7 untuk mengeluarkan 7.0.53 atau lebih baru, yang termasuk pengkompil yang dikemas kini dengan sokongan Java 8 yang dipertingkatkan.
Pengimbasan Anotasi:
Apabila pengimbasan anotasi didayakan, terdapat adalah dua alternatif:
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
Ini akan mengarahkan Tomcat untuk melangkau mengimbas pustaka yang ditunjukkan.
Nota Tambahan:
Atas ialah kandungan terperinci Mengapakah saya Mendapat \'Teg Bait Tidak Sah dalam Kolam Malar: 15\' Pengecualian dalam Tomcat 7 dengan Java 8?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!