6

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

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

4

1 回答 1

9

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

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

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);

了解更多信息

于 2012-08-03T14:08:36.990 回答