JAXBContext实现配置没有被选中

时间:2018-01-21 10:12:46

标签: java jaxb java-ee-7 payara

我正在寻找一种方法来将我的JAXBContext实现配置从[包含实体的每个包中的jaxb.properties文件]重构为[单个配置文件]。

发现JAXB实施" -section JAXBContext - 我找到的文档

  

当调用其中一个newInstance方法时,通过以下步骤发现JAXB实现   ...
  3.在关联的类加载器中查找/META-INF/services/javax.xml.bind.JAXBContext文件。此文件遵循标准服务描述符约定,如果存在此类文件,则假定其内容为提供者工厂类。查找的这个阶段是自动发现。它允许用户将JAXB实现放在类路径中,并在没有任何配置的情况下使用它。

这在我的单元测试中有效,但在我在Payara 4.174上部署应用程序时却没有。

使用以下文件时,我从JAXBContext.newInstance(clazz)获得以下实现:org.eclipse.persistence.jaxb.JAXBContext@15e2f4b5

# src/main/resources/org/example/packagecontainingentity/jaxb.properties
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

然而,当我删除jaxb.properties并依赖以下文件时,我得到以下实现:bundle://239.0:1/com/sun/xml/bind/v2/runtime/JAXBContextImpl.class

# src/main/resources/META-INF/services/javax.xml.bind.JAXBContext
org.eclipse.persistence.jaxb.JAXBContextFactory

我在项目中找不到javax.xml.bind.JAXBContext的其他实例(例如在依赖项中),并且我没有JAXB_CONTEXT_FACTORY JVM设置。

javax.xml.bind.JAXBContext实际上是在战争中,我尝试了以下位置:

/META-INF/services/javax.xml.bind.JAXBContext 
/WEB-INF/classes/META-INF/services/javax.xml.bind.JAXBContext 

我在这里缺少什么?我不了解配置系统或我遇到一些Payara错误吗?

0 个答案:

没有答案