JAXB Web Service从Weblogic 10迁移到12

时间:2015-02-12 13:05:09

标签: java-ee jaxb weblogic

我在Weblogic 10.3上有一个正在运行的Web服务(JAX-WS 2.2)。一切正常。因此,wsdl中可能存在问题。

我尝试迁移到WLS 12.但是现在我在厌倦的时候得到了错误。

从WLS 10到WLS 12的变化是什么导致问题?

2 个答案:

答案 0 :(得分:3)

WLS 12的JAXB实现已更改。

  • 在Oracle Weblogic WLS10 Glassfish JAXB RI实施中提供
  • 在Oracle Weblogic WLS12中提供了EclipseLink Implementaiotn MOXy

您可以按照oracle docs

所述使用JAXB RI强制使用WLS12

您需要覆盖以下两个属性才能告诉WLS12使用JAXB RI:

  • com.sun.xml.ws.spi.db.BindingContextFactory = com.sun.xml.ws.db.glassfish.JAXBRIContextFactory
  • javax.xml.bind.JAXBContext = com.sun.xml.bind.v2.ContextFactory

最简单的方法是将databinding.override_1.0.0.0.jar添加到类路径

或者你可以将它们设置为java系统属性,但是在oracle docs中编写

在某些情况下,将系统属性传播到间接调用的Java实例(例如从Ant任务分叉的客户端)可能很困难。在这些情况下,确保您使用的环境传播属性非常重要。

答案 1 :(得分:0)

我正在从10.3.6升级到12.2.1.3,并看到相同的问题:以下异常。 modules / databinding.override_1.0.0.0.jar不是发行版的一部分,但我发现:我在calsspath中包含的Oracle / Middleware_Home12c / wlserver / modules / databinding.override.jar仍然无法解决问题,但仍然同样的例外。

Feb 07, 2019 9:22:51 AM org.springframework.web.context.ContextLoader initWebApplicationContext

SEVERE: Context initialization failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'basketService' defined in ServletContext resource [/WEB-INF/store-services.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.factory.BeanDefinitionStoreException: Factory method [public synchronized java.lang.Object org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create()] threw exception; nested exception is Exception [EclipseLink-25037] (Eclipse Persistence Services - 2.6.5.v20170607-b3d05bd): org.eclipse.persistence.exceptions.XMLMarshalException

Exception Description: A cycle is detected in the object graph.  This will cause an infinite loop: org.eclipse.persistence.internal.oxm.schema.model.ComplexType@8e926ca -> org.eclipse.persistence.internal.oxm.schema.model.Element@3e83f11a -> org.eclipse.persistence.internal.oxm.schema.model.Sequence@745d452e -> org.eclipse.persistence.internal.oxm.schema.model.ComplexType@8e926ca

        at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:597)

        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1055)

        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:951)

        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:487)