使用Maven构建时,运行时缺少jaxb.properties

我有一个项目,我想使用一个由JAXB从XSD生成的一组类。 有了这些类,我想从XML和JSON中编组/取消编组。

我已经发现我需要Moxy Eclipselink来做我需要的事情。 我测试了我的类和进程作为Ant项目,然后我决定将其移交给Maven以便更好地管理。

但是,似乎在运行时无法识别jaxb.properties文件。

我的项目有一个用于对象的Maven工件,以及另一个用于逻辑/处理的工件。 我一直在试着找出jaxb.properties的位置,以便可以读取它。

我努力了

对象项目

/src/main/resources/jaxb.properties /src/main/java/[namespace]/jaxb.properties 

逻辑项目

 /src/main/resources/jaxb.properties /src/main/java/[namespace]/jaxb.properties 

但是,当我尝试获取我的JAXBContext的类名时,我仍然得到:

 class com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl 

如果我通过指定以下JVM选项来修改我的运行设置:

 -Djavax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory 

我明白了:

 class org.eclipse.persistence.jaxb.JAXBContext 

在两个项目中,我都在pom.xml中指定了它

    src/main/resources  **/*.properties     

如果我看一下JAR,我会在那里看到jaxb.properties。

JAR的根 现在我很困惑。

您需要确保jaxb.properties文件位于与相应模型类相同的包结构中的resources目录下。

例如,在maven中的java类

  src\main\java\com\example\sitemap\generate\domain 

和文件jaxb.properties

  src\main\resources\com\example\sitemap\generate\domain\jaxb.properties