jaxb.properties
需要与您在其上创建 JAXBContext的域类位于同一个包中。
我正在使用 Moxy 的 xml 驱动配置,因为我不想使用注释或 XJC 生成的对象。我有一个现有的域类,它们分布在多个包中。这是否意味着我需要jaxb.properties
在所有这些包中都有存在或有更好的选择(也许编写我自己的一些可以从 jvm arg 或其他东西读取的接口的实现)?
jaxb.properties
需要与您在其上创建 JAXBContext的域类位于同一个包中。
我正在使用 Moxy 的 xml 驱动配置,因为我不想使用注释或 XJC 生成的对象。我有一个现有的域类,它们分布在多个包中。这是否意味着我需要jaxb.properties
在所有这些包中都有存在或有更好的选择(也许编写我自己的一些可以从 jvm arg 或其他东西读取的接口的实现)?
这是否意味着我需要在所有这些包中都存在 jaxb.properties?
如果您正在创建您的JAXBContext
on 类,那么您需要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 API 与jaxb.properties
文件一起使用,以将 MOXy 指定为 JAXB 提供程序。有些人更喜欢使用本机 MOXy API 来执行此操作:
JAXBContext jc = org.eclipse.persistence.jaxb.JAXBContextFactory.createContext(new Class[] {Foo.class, Bar.class}, null);
了解更多信息