Jaxb 当与模式派生类一起使用时,MOXy需要什么特别的东西吗?

Jaxb 当与模式派生类一起使用时,MOXy需要什么特别的东西吗?,jaxb,moxy,Jaxb,Moxy,我看到这个问题: 并想问以下问题: 当与模式派生类一起使用时,MOXy需要什么特别的东西吗?例如,每个包都需要jaxb.properties文件吗?以下内容适用于类是从XML模式生成的,还是手工构建的POJO 将MOXy指定为单个JAXBContext 在内容路径(一个或多个包名)上使用提供程序(如)而不是默认设置创建JAXBContext时,您需要在其中一个包中包含一个jaxb.properties文件和相应的条目。例如,给定下面的代码,jaxb.properties文件可以放在com.ex

我看到这个问题:

并想问以下问题:


当与模式派生类一起使用时,MOXy需要什么特别的东西吗?例如,每个包都需要
jaxb.properties
文件吗?

以下内容适用于类是从XML模式生成的,还是手工构建的POJO

将MOXy指定为单个
JAXBContext
在内容路径(一个或多个包名)上使用提供程序(如)而不是默认设置创建
JAXBContext
时,您需要在其中一个包中包含一个
jaxb.properties
文件和相应的条目。例如,给定下面的代码,
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指定为所有jaxbcontext的默认JAXB提供程序 或者,您可以配置您的环境,使MOXy成为默认的JAXB提供程序,这样就不需要
JAXB.properties
文件。具体做法如下:

您还可以利用
META-INF/services
机制将MOXy指定为默认JAXB提供程序:

  • 在目录
    META-INF/services
  • javax.xml.bind.JAXBContext
    文件的内容必须是
    org.eclipse.persistence.jaxb.JAXBContextFactory
  • 将该jar添加到类路径中

  • 我无权发表评论,所以我在这里给出答案。 最近我在项目中选择了MOXy,也遇到了这个问题。我们使用maven作为构建工具,如果您也使用maven,您只需在
    resources
    目录下创建directory
    META-INF/services
    ,并在
    META-INF/services
    目录下创建一个名为
    javax.xml.bind.JAXBContext
    的文件,然后用contents
    org.eclipse.persistence.jaxb.JAXBContextFactory
    编辑该文件