Heim  >  Artikel  >  Java  >  Hier sind einige Titeloptionen unter Berücksichtigung des Frage-und-Antwort-Formats: Kurz und bündig: * ClassFormatException: Ungültiges Byte-Tag im Konstantenpool – Warum und wie kann es behoben werden? * Tomcat 7 an

Hier sind einige Titeloptionen unter Berücksichtigung des Frage-und-Antwort-Formats: Kurz und bündig: * ClassFormatException: Ungültiges Byte-Tag im Konstantenpool – Warum und wie kann es behoben werden? * Tomcat 7 an

Barbara Streisand
Barbara StreisandOriginal
2024-10-27 07:46:31548Durchsuche

Here are a few title options, keeping in mind the question-and-answer format:

Short and to the point:

* ClassFormatException: Invalid Byte Tag in Constant Pool - Why and How to Fix it?
* Tomcat 7 and Java 8: ClassFormatException - How to Resolve?

More

ClassFormatException: Ungültiges Byte-Tag im Konstantenpool

Hintergrund:

Während der Portierung eines Webs Anwendung von Tomcat 7 auf einen anderen Server mit derselben Tomcat-Version, aber unter Verwendung von Java 8, wurde beobachtet, dass Tomcat erfolgreich gestartet wurde, aber einen Fehler im catalina.out-Protokoll erzeugte:

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

Ursache:

Der Fehler ist auf ein Problem mit der Bytecode Engineering Library (BCEL) zurückzuführen, die von Tomcat verwendet wird und bei der Verarbeitung der neuen Java 8-Bytecodes auf Schwierigkeiten stößt.

Lösung 1: Deaktivieren Scannen von Anmerkungen

Wenn das Scannen von Anmerkungen in web.xml aktiviert ist (metadata-complete="true"), kann die Anwendung durch Deaktivieren ausgeführt werden, ohne dass der Fehler auftritt.

Lösung 2: Update auf Tomcat 7.0.53 oder höher

Ab Tomcat 7.0.53 wurde der Compiler mit verbesserter Java 8-Unterstützung aktualisiert. Dieses Update behebt das Problem für Anwendungen, die das Scannen von Anmerkungen und Nicht-Java-8-Code verwenden.

Lösung 3: Bestimmte Jar-Dateien überspringen

Für Situationen, in denen das Scannen von Anmerkungen erforderlich ist und Da die Anwendung Java 8-Code verwendet, fügen Sie die folgende Zeile zu catalina.properties hinzu:

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

um diese Jar-Dateien beim Scannen von Annotationen zu überspringen.

Das obige ist der detaillierte Inhalt vonHier sind einige Titeloptionen unter Berücksichtigung des Frage-und-Antwort-Formats: Kurz und bündig: * ClassFormatException: Ungültiges Byte-Tag im Konstantenpool – Warum und wie kann es behoben werden? * Tomcat 7 an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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