0

我正在努力在现有的 spring-boot 项目中切换一个模块以使用 spring native。我的 nativeBuild 失败并出现以下错误。

致命错误:com.oracle.graal.pointsto.util.AnalysisError$ParsingError: 解析 com.fasterxml.jackson.core.JsonFactory._createGenerator(java.io.Writer, com.fasterxml.jackson.core.io.IOContext 时遇到错误) 解析上下文:解析 com.fasterxml.jackson.core.JsonFactory.createGenerator(JsonFactory.java:1318) 解析 com.fasterxml.jackson.databind.ObjectMapper.createGenerator(ObjectMapper.java:1164) 解析 com.fasterxml.jackson.databind .ObjectMapper.writeValue(ObjectMapper.java:3725) 解析 abcUtil.writeManifest(Util.java:61)

原因:org.graalvm.compiler.java.BytecodeParser$BytecodeParserError: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: No instance of com.fasterxml.jackson.core.io.SerializedString are allowed in image heap as this class应该在图像运行时初始化。要查看这个对象是如何被实例化的,请使用 --trace-object-instantiation=com.fasterxml.jackson.core.io.SerializedString。在 jdk.internal.vm.compiler/org.graalvm.compiler.java.BytecodeParser.throwParserError(BytecodeParser.java:2601) 解析 com.fasterxml.jackson.core.JsonFactory.(JsonFactory.java:186)

这是在这段代码中触发的:

  ObjectMapper mapper = new ObjectMapper();
  mapper.writeValue(writer, convertedResults);

我在用:

id 'org.springframework.boot' 版本 '2.5.2' id 'org.springframework.experimental.aot' 版本 '0.10.1' id 'org.graalvm.buildtools.native' 版本 '0.9.0' nativeBuild {
buildArgs( "--trace-object-instantiation=com.fasterxml.jackson.core.io.SerializedString --verbose -H:+ReportExceptionStackTraces") }

openjdk 版本 "11.0.11" 2021-04-20 OpenJDK 运行环境 GraalVM CE 21.1.0 (build 11.0.11+8-jvmci-21.1-b05) OpenJDK 64-Bit Server VM GraalVM CE 21.1.0 (build 11.0.11 +8-jvmci-21.1-b05,混合模式,共享)

我尝试在一个独立的 spring 本机项目中重现这个问题,但是没有遇到同样的问题。你对我如何进一步调查这个问题有什么建议吗?

谢谢!

4

0 回答 0