Heim > Java > javaLernprogramm > Hauptteil

Warum erhalte ich in Tomcat 7 mit Java 8 die Ausnahme „Ungültiges Byte-Tag im Konstantenpool: 15'?

Linda Hamilton
Freigeben: 2024-10-27 08:40:03
Original
930 Leute haben es durchsucht

Why am I Getting

Ausnahme „Ungültiges Byte-Tag im Konstantenpool: 15“ in Tomcat 7 mit Java 8

Tomcat 7 ist offiziell mit Java 8 kompatibel. Bei der Migration einer Webanwendung von Tomcat 7 mit Java 6 auf einen anderen Tomcat 7-Server mit Java 8 können Benutzer jedoch auf die folgende Ausnahme stoßen:

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

Mögliche Ursachen

Diese Ausnahme tritt aufgrund von BCEL-Problemen (Byte Code Engineering Library) in Tomcat 7 mit Java 8 auf. BCEL stößt auf Schwierigkeiten bei der Verarbeitung der neuen Java 8-Bytecodes, insbesondere wenn das Scannen von Annotationen aktiviert ist (metadata-complete="true" in web.xml). ).

Lösungen

Kein Scannen von Anmerkungen:

Wenn das Scannen von Anmerkungen nicht verwendet wird, kann das Problem durch gelöst werden Aktualisierung von Tomcat 7 auf Version 7.0.53 oder höher, die einen aktualisierten Compiler mit verbesserter Java 8-Unterstützung enthält.

Anmerkungsscannen:

Wenn das Annotationsscannen aktiviert ist, dort Es gibt zwei Alternativen:

  • Problembibliotheken ausschließen: Fügen Sie die folgende Zeile zu /etc/tomcat7/catalina.properties hinzu:
junit.jar,junit-*.jar,ant-launcher.jar,\
jfxrt.jar,nashorn.jar
Nach dem Login kopieren

This weist Tomcat an, das Scannen der angegebenen Bibliotheken zu überspringen.

  • Scannen von Anmerkungen deaktivieren: Entfernen Sie „metadata-complete="true" aus web.xml, um das Scannen von Anmerkungen zu deaktivieren.

Zusätzliche Hinweise:

  • Dieses spezielle Problem trat mit Tomcat 7.0.28 unter Debian 7.6 mit Oracle JDK 8_25 auf.
  • Der „offizielle Antwort“, dass Tomcat 7 mit Java 8 kompatibel ist, bleibt gültig. Allerdings können BCEL-Probleme auftreten, wenn das Scannen von Anmerkungen aktiviert ist.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich in Tomcat 7 mit Java 8 die Ausnahme „Ungültiges Byte-Tag im Konstantenpool: 15'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!