我看到了这个问题:
Using Moxy as JAXB Implementation and setting jaxb.properties with more than one POJO package
想要问以下内容:
使用模式派生类时,MOXy是否需要任何特殊功能?例如,每个包中都需要jaxb.properties
个文件吗?
答案 0 :(得分:3)
以下内容适用于这些类是从XML Schema生成的,还是手工构建的POJO。
JAXBContext
使用JAXB (JSR-222)提供程序(例如MOXy)在内容路径(一个或多个程序包名称)上创建JAXBContext
时,除了默认值之外,您需要包含{jaxb.properties
1}}文件,其中一个包中有相应的条目。例如,根据下面的代码,jaxb.properties
文件可以放在com.example.pkg1
包或org.example.pk2
包中,也可以放在两者中。
JAXBContext jc = JAXBContext.newInstance("com.example.pkg1:org.example.pkg2");
jaxb.properties
的内容必须是:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
或者,您可以配置环境,以便MOXy是默认的JAXB提供程序,以便不需要jaxb.properties
文件。这样做如下:
您还可以利用META-INF/services
机制将MOXy指定为默认的JAXB提供程序:
javax.xml.bind.JAXBContext
META-INF/services
的文件的JAR
javax.xml.bind.JAXBContext
文件的内容必须为org.eclipse.persistence.jaxb.JAXBContextFactory
答案 1 :(得分:0)
我没有权利发表评论,所以我在这里给出答案。
最近我在项目中选择了MOXy并且也遇到了问题。我们使用maven作为构建工具,如果你也使用maven,你可以简单地在META-INF/services
目录下创建dire resources
,并在javax.xml.bind.JAXBContext
下创建一个名为META-INF/services
的文件,然后使用内容org.eclipse.persistence.jaxb.JAXBContextFactory
编辑文件。