Heim >Java >javaLernprogramm >Warum erhalte ich in Tomcat 7 mit Java 8 die Ausnahme „Ungültiges Byte-Tag im Konstantenpool: 15'?
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
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:
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
This weist Tomcat an, das Scannen der angegebenen Bibliotheken zu überspringen.
Zusätzliche Hinweise:
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!