为了账号安全,请及时绑定邮箱和手机立即绑定

部署 Spring .ear 时常量池标记无效

部署 Spring .ear 时常量池标记无效

小怪兽爱吃肉 2023-06-14 16:31:12
在我的工作中,我们需要部署一个必须是 java 8 的 .ear 文件。但是当我们尝试部署时,会发生此错误:Caused by: com.sap.engine.library.bytecode.cf.CFException: Invalid constant pool tag, 19 at index 4.    at com.sap.engine.library.bytecode.cf.CFParser.parse0(CFParser.java:386)    at com.sap.engine.library.bytecode.cf.CFParser.parse(CFParser.java:307)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.parseClassInformation(ClassInfoReaderImpl.java:336)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.traverseZipFile(ClassInfoReaderImpl.java:287)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.readInternal(ClassInfoReaderImpl.java:105)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.traverseFolder(ClassInfoReaderImpl.java:175)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.readInternal(ClassInfoReaderImpl.java:103)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.traverseFolder(ClassInfoReaderImpl.java:175)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.readInternal(ClassInfoReaderImpl.java:103)    at com.sap.lib.javalang.tool.impl.ClassInfoReaderImpl.traverseWarFile(ClassInfoReaderImpl.java:196)    ... 16 more我们认为触发此问题是因为其中一个依赖项指向某个 Java 9 库。因此,我需要有关必须降级哪些依赖项或其他任何内容的帮助,以便将系统部署到 Java 8。
查看完整描述

1 回答

?
慕田峪7331174

TA贡献1828条经验 获得超13个赞

我解决了。Jaxb jar 有一个在 java 9 中编译的类。它必须降级到 2.2.12 才能在 java 8 中部署。您可以通过将其添加到 pom.xml 来降级它

<!-- https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api --><dependency>
    <groupId>javax.xml.bind</groupId>
    <artifactId>jaxb-api</artifactId>
    <version>2.2.12</version>
</dependency>


查看完整回答
反对 回复 2023-06-14
  • 1 回答
  • 0 关注
  • 134 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信