Rumah > Java > javaTutorial > teks badan

Mengapakah saya Mendapat \'Teg Bait Tidak Sah dalam Kolam Malar: 15\' Pengecualian dalam Tomcat 7 dengan Java 8?

Linda Hamilton
Lepaskan: 2024-10-27 08:40:03
asal
930 orang telah melayarinya

Why am I Getting

"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
Salin selepas log masuk

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:

  • Kecualikan Perpustakaan Masalah: Tambahkan baris berikut ke /etc/tomcat7/catalina.properties:
junit.jar,junit-*.jar,ant-launcher.jar,\
jfxrt.jar,nashorn.jar
Salin selepas log masuk

Ini akan mengarahkan Tomcat untuk melangkau mengimbas pustaka yang ditunjukkan.

  • Lumpuhkan Pengimbasan Anotasi: Alih keluar "metadata-complete="true" daripada web.xml untuk melumpuhkan pengimbasan anotasi.

Nota Tambahan:

  • Isu khusus ini timbul dengan Tomcat 7.0.28 pada Debian 7.6 dengan Oracle JDK 8_25.
  • The "rasmi jawab" bahawa Tomcat 7 serasi dengan Java 8 kekal sah. Walau bagaimanapun, isu BCEL mungkin timbul apabila pengimbasan anotasi didayakan.

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!