JAXBContext,jaxb.properties和moxy

时间:2012-08-02 20:50:30

标签: jaxb eclipselink moxy

jaxb.properties需要位于与您正在创建JAXBContext的 相同的包中

我正在使用Moxy的xml驱动配置,因为我不想使用注释或XJC生成的对象。我有一个分布在多个包中的现有域类。这是否意味着我需要在所有这些包中存在jaxb.properties或者有更好的替代方法(也许编写我自己的某些接口可以从jvm arg或其他东西读取的实现)?

1 个答案:

答案 0 :(得分:6)

  

这是否意味着我需要让jaxb.properties存在   那些包裹?

如果要在类上创建JAXBContext,则需要在传入的域类的至少一个包中包含jaxb.properties文件。在下面的示例中,您可以拥有jaxb.propertiespackage1中的package2个文件。

JAXBContext jc = JAXBContext.newInstance(package1.Foo.class, package2.Bar.class);

如果要在软件包名称上创建JAXBContext,则需要在至少一个软件包中包含jaxb.properties个文件。请注意,包由':'分隔。

JAXBContext jc = JAXBContext.newInstance("package1:package2");

  

或者有更好的选择

我的首选是使用带有jaxb.properties文件的标准JAXB API将MOXy指定为JAXB提供程序。有些人更喜欢使用本机MOXy API来执行此操作:

JAXBContext jc = org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(new Class[] {Foo.class, Bar.class}, null);

了解更多信息