Heim  >  Artikel  >  Java  >  Wie behebt man die „Ungültige Byte-Tag-Ausnahme“ in Tomcat 7 beim Upgrade auf Java 8?

Wie behebt man die „Ungültige Byte-Tag-Ausnahme“ in Tomcat 7 beim Upgrade auf Java 8?

DDD
DDDOriginal
2024-10-28 15:26:02770Durchsuche

 How to Fix

Ungültige Byte-Tag-Ausnahme in Tomcat 7 mit Java 8

Beim Portieren einer Webanwendung von Tomcat 7 und Java 7 auf einen anderen Server, auf dem Tomcat ausgeführt wird 7 und Java 8 kann beim Start ein Fehler auftreten:

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

Diese Ausnahme stammt von BCEL, der von Tomcat verwendeten Java-Bytecode-Engineering-Bibliothek. Insbesondere das Scannen von Anmerkungen (mit metadata-complete="true" in web.xml) kann Probleme auslösen, da BCEL bestimmte Java 8-Byte-Codes nicht verarbeiten kann.

Lösungen:

1. Anmerkungsscan deaktivieren:

Wenn das Anmerkungsscannen nicht unbedingt erforderlich ist, kann es durch Festlegen von metadata-complete="false" in web.xml deaktiviert werden.

2. Tomcat 7.0.53 oder höher:

Tomcat 7.0.53 und nachfolgende Versionen enthalten einen aktualisierten Compiler mit verbesserter Java 8-Unterstützung. Durch ein Upgrade auf diese Versionen sollte die Ausnahme behoben werden.

3. Überspringen Sie Java 8-JARs für das Scannen von Anmerkungen (erweitert):

Wenn das Scannen von Anmerkungen erforderlich ist und die Webanwendung nicht auf Java 8 basiert, fügen Sie die folgende Zeile zu /etc/tomcat7/catalina.properties hinzu:

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

Diese Zeile weist Tomcat an, bestimmte Java 8-JARs während des Annotationsscans zu ignorieren.

Das obige ist der detaillierte Inhalt vonWie behebt man die „Ungültige Byte-Tag-Ausnahme“ in Tomcat 7 beim Upgrade auf Java 8?. 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