JAXBContext,jaxb.properties和moxy

jaxb.properties需要与您创建JAXBContext的域类位于同一个包中.

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

最佳答案

Does this mean that i need to have the jaxb.properties present in all
those packages?

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

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

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

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

or there is a better alternative

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

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

欲获得更多信息

> http://blog.bdoughan.com/2011/05/specifying-eclipselink-moxy-as-your.html

转载注明原文:JAXBContext,jaxb.properties和moxy - 代码日志