我有一个项目,我希望使用来自XSD的由JAXB生成的一组类。有了这些类,我想从XML和JSON中编组/解组。jaxb.properties在使用Maven构建时在运行时缺少
我已经想通了,我需要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。
现在我很困惑。
Blaise,感谢您的GitHub链接。仔细阅读文件夹的结构后,它确实开始有意义。我把jaxb.properties放在正确的包中,它运行得非常好! –
这对我很有帮助,我做了一次重构并在应用程序中移动了模型类,但忘记移动jaxb.properties。包结构必须在资源树下完全匹配。我被一个包裹关了,一切都破裂了。这是非常重要的一点。 – Jon
谢谢sooo。这也是我的问题。这就是我喜欢stackoverflow的原因。所以,许多伟大的人喜欢你帮忙! – atom88