gradle JAXB无法与Quarkus本机构建一起工作-“找不到org.glassfish.jaxb.runtime.v2.JAXBContextFactory”

ars1skjm  于 2023-05-18  发布在  其他
关注(0)|答案(1)|浏览(353)

我正在使用Quarkus构建微服务。我使用JAXB来处理服务通过REST API端点接收的XML文件。
我的原生版本总是抛出以下错误:java.util.ServiceConfigurationError: jakarta.xml.bind.JAXBContextFactory: Provider org.glassfish.jaxb.runtime.v2.JAXBContextFactory not found。该错误仅在本机构建时发生,JVM构建工作正常。
build.gradle中,我添加了io.quarkus:quarkus-resteasy-reactive-jaxborg.glassfish.jaxb

dependencies {
    implementation 'io.quarkus:quarkus-resteasy-reactive-jaxb'
     .
     .
     .
    jaxb "org.glassfish.jaxb:jaxb-xjc:4.0.1"
    jaxb "org.glassfish.jaxb:jaxb-runtime:4.0.1"
}
jdgnovmf

jdgnovmf1#

我也有同样的问题。以下是为我修复的:

  • 将org.apache.camel.quarkus:camel-quarkus-xml-jaxb作为依赖项添加到build. gradle。
  • 创建一个reflection-config.json(在src/main/resources文件夹中),包含以下内容:
[
      {
        "name": "org.glassfish.jaxb.runtime.v2.JAXBContextFactory",
        "allDeclaredConstructors" : true
      }
    ]
  • 在您的www.example.com中引用反射配置application.properties,如下所示:
quarkus.native.additional-build-args=-H:ReflectionConfigurationFiles=reflection-config.json

相关问题