哪里包含jaxb.properties文件?

时间:2010-12-02 22:25:39

标签: properties jaxb eclipselink moxy

我有REST(Jersey)webservice,它使用一些编组/解组到XML的数据对象。数据对象位于Web服务战争所依赖的单独项目/ jar中。

我正在使用MOXy作为我的JAXB实现,因为我正在部署到Glassfish并且已经包含了。我知道我需要一个jaxb.properties文件来使用此条目将JAXB实现设置为MOXy:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

问题是,jaxb.properties文件是否应该包含在数据对象jar或webservice war中,还是两者都包含在内?

2 个答案:

答案 0 :(得分:21)

如果你不想或不能使用jaxb.properties(你有很多包,模型是在外部jar中,你只想要java而没有配置文件...),你可以直接指定JaxbContextFactory:

不要使用以下方式创建上下文:

JAXBContext jaxbContext = JAXBContext.newInstance(new Class[]{Person.class, ObjectFactory.class}, properties);

但是,请指定要使用的工厂:

JAXBContext jaxbContext = JAXBContextFactory.createContext(new Class[]{Person.class, ObjectFactory.class}, properties);

工厂在哪里:

import org.eclipse.persistence.jaxb.JAXBContextFactory;

它完全相同,但它在java代码中显式指定,而不是在配置文件中隐式指定。

答案 1 :(得分:12)

使用模型类打包jaxb.properties文件。 GlassFish尚未包含MOXy包,但您可以轻松添加它。查看我的博客了解更多信息: