将应用程序 war 部署到服务器时出现此错误:
12-Sep-2018 10:21:54.726 SEVERE [localhost-startStop-1] org.apache.catalina.startup.ContextConfig.processAnnotationsJar Unable to process Jar entry [module-info.class] from Jar [file:/xxx/apache-tomcat-8.0.41_xxxx/webapps/xxx/WEB-INF/lib/jaxb-api-2.3.0.jar] for annotations
org.apache.tomcat.util.bcel.classfile.ClassFormatException: Invalid byte tag in constant pool: 19
信息:
- 应用程序是使用 Spring Boot 创建的微服务
- 使用的 Java 是版本 8
- Tomcat版本:tomcat-8.0.41
谢谢。
最佳答案
module-info.class
是 Java 9 中引入的 Java 模块系统的模块描述符。Tomcat 8.0 中的某些代码无法读取该类文件中的字节码,因此部署失败。
我认为这是 Tomcat 8.0 的一个限制,已在 8.5 中修复。另请注意 end-of-life announcement已经为 8.0 制作,因此即使没有这个问题,您也应该计划尽快升级。
关于spring-boot - 无法将 war 部署到 Tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52336291/