jaxb.properties
需要位于与您正在创建JAXBContext的 相同的包中 。
我正在使用Moxy的xml驱动配置,因为我不想使用注释或XJC生成的对象。我有一个分布在多个包中的现有域类。这是否意味着我需要在所有这些包中存在jaxb.properties
或者有更好的替代方法(也许编写我自己的某些接口可以从jvm arg或其他东西读取的实现)?
答案 0 :(得分:6)
这是否意味着我需要让jaxb.properties存在 那些包裹?
如果要在类上创建JAXBContext
,则需要在传入的域类的至少一个包中包含jaxb.properties
文件。在下面的示例中,您可以拥有jaxb.properties
或package1
中的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);
了解更多信息