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

在我的工作中,我们需要部署一个必须是 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。


小怪兽爱吃肉
浏览 106回答 1
1回答

慕田峪7331174

我解决了。Jaxb jar 有一个在 java 9 中编译的类。它必须降级到 2.2.12 才能在 java 8 中部署。您可以通过将其添加到 pom.xml 来降级它<!--&nbsp;https://mvnrepository.com/artifact/javax.xml.bind/jaxb-api&nbsp;--><dependency> &nbsp;&nbsp;&nbsp;&nbsp;<groupId>javax.xml.bind</groupId> &nbsp;&nbsp;&nbsp;&nbsp;<artifactId>jaxb-api</artifactId> &nbsp;&nbsp;&nbsp;&nbsp;<version>2.2.12</version> </dependency>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java