如何在Weblogic 12.1.3中指定JAXBContext实现

RVA*_*RVA 5 xml weblogic jaxb

我已经使用JAXB在Java中创建了一个MDB来解析xml内容。此MDB在10.3.4 weblogic服务器上已经很长时间(大约3年)工作了。

现在,我必须将其迁移到weblogic 12.1.3服务器上,并且由于我尚不知道的原因,weblogic选择的实现与我想要的不同。但是我不知道如何设置它。

现在我的代码初始化代码是这样的:

private JAXBContext getJAXBContext() throws JAXBException {
    if (v1JaxbContext == null) {
       v1JaxbContext = JAXBContext.newInstance(MyClass.class);
    }
    System.out.println("jaxbContext : "+v1JaxbContext.getClass().getName());
    return v1JaxbContext;
}
Run Code Online (Sandbox Code Playgroud)

MyClass.java由JAXB从XSD生成。

在我的月食中,输出是com.sun.xml.internal.bind.v2.runtime.JAXBContextImpl

在我的网络逻辑方面,输出是org.eclipse.persistence.jaxb.JAXBContext

RVA*_*RVA 4

当我通过 EAR 使用我的代码时,我必须添加这些行:

<wls:prefer-application-resources>
    <resource-name>META-INF/services/javax.xml.bind.JAXBContext</resource-name>
</wls:prefer-application-resources>  
Run Code Online (Sandbox Code Playgroud)

并在我的 EAR services/javax.xml.bind.JAXBContex的 META-INF 目录中创建文件,其中仅包含,并且它有效

com.sun.xml.bind.v2.ContextFactory
Run Code Online (Sandbox Code Playgroud)