Home  >  Article  >  Java  >  How to Fix \"Invalid Byte Tag Exception\" in Tomcat 7 when Upgrading to Java 8?

How to Fix \"Invalid Byte Tag Exception\" in Tomcat 7 when Upgrading to Java 8?

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

 How to Fix

Invalid Byte Tag Exception in Tomcat 7 with Java 8

When porting a web application from Tomcat 7 and Java 7 to another server running Tomcat 7 and Java 8, an error may occur during startup:

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

This exception stems from BCEL, the Java bytecode engineering library used by Tomcat. In particular, annotation scanning (with metadata-complete="true" in web.xml) can trigger issues due to BCEL's inability to process certain Java 8 byte codes.

Solutions:

1. Disable Annotation Scanning:

If annotation scanning is not essential, it can be disabled by setting metadata-complete="false" in web.xml.

2. Tomcat 7.0.53 or Later:

Tomcat 7.0.53 and subsequent releases include an updated compiler with improved Java 8 support. Upgrading to these versions should resolve the exception.

3. Skip Java 8 JARs for Annotation Scanning (Advanced):

If annotation scanning is required and the web application is not Java 8 based, add the following line to /etc/tomcat7/catalina.properties:

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

This line instructs Tomcat to ignore specific Java 8 JARs during annotation scanning.

The above is the detailed content of How to Fix \"Invalid Byte Tag Exception\" in Tomcat 7 when Upgrading to Java 8?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn