Tomcat 7 与 Java 8 中的“常量池中的无效字节标记:15”异常
Tomcat 7 正式与 Java 8 兼容。但是,当将 Web 应用程序从使用 Java 6 的 Tomcat 7 迁移到另一个使用 Java 8 的 Tomcat 7 服务器时,用户可能会遇到以下异常:
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 15
可能的原因
出现此异常是由于带有 Java 8 的 Tomcat 7 中的 BCEL(字节码工程库)问题。BCEL 在处理新的 Java 8 字节码时遇到困难,尤其是在启用注释扫描时(web.xml 中的metadata-complete=“true”) ).
解决方案
无注释扫描:
如果不使用注释扫描,可以通过以下方式解决问题将 Tomcat 7 更新到版本 7.0.53 或更高版本,其中包括具有改进的 Java 8 支持的更新编译器。
注释扫描:
启用注释扫描时,有有两种选择:
junit.jar,junit-*.jar,ant-launcher.jar,\ jfxrt.jar,nashorn.jar
此将指示 Tomcat 跳过扫描指定的库。
附加说明:
以上是为什么我在使用 Java 8 的 Tomcat 7 中收到'常量池中的无效字节标记:15”异常?的详细内容。更多信息请关注PHP中文网其他相关文章!