JAXBContext,jaxb.properties和moxy

Ara*_*ram 5 jaxb eclipselink moxy

jaxb.properties需求是在同一个封装领域类,你是在创建JAXBContext中.

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

bdo*_*han 8

这是否意味着我需要在所有这些包中提供jaxb.properties?

如果要创建JAXBContexton classes,那么您需要jaxb.properties在传入的域类的至少一个包中包含一个jaxb.properties文件.在下面的示例中,您可以在package1或中创建一个文件package2.

JAXBContext jc = JAXBContext.newInstance(package1.Foo.class, package2.Bar.class);
Run Code Online (Sandbox Code Playgroud)

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

JAXBContext jc = JAXBContext.newInstance("package1:package2");
Run Code Online (Sandbox Code Playgroud)

或者有更好的选择

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

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

欲获得更多信息