我有一个项目,我想使用 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 中指定了这个
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
</includes>
</resource>
</resources>
</build>
如果我查看 JAR,我会在其中看到 jaxb.properties。
现在我很困惑。