将CXF升级到2.7.5会引发JAXBException

时间:2013-07-22 10:33:53

标签: java jaxb cxf

我最近将CXF库从2.2.11升级到2.7.5。这是抛出IllegalAnnotationsException错误。我在下面列出了错误以及有关应用程序的更多详细信息。

我使用wsdl2java和xjc来生成xsd文件中的绑定类。所以在此之后,我们在不同的包中有多个对象工厂类。某些对象工厂类具有相同的方法名称,但它们位于不同的包中。因此它根据JAXB的规范进行编译。

但是在运行期间,我得到以下错误。

org.apache.cxf.service.factory.ServiceConstructionException
    Caused by: com.sun.xml.internal.bind.v2.runtime.IllegalAnnotationsException: 34 counts        of IllegalAnnotationExceptions
    The element name {urn:com.company.myproject.v4}DateEntered has more than one mapping.
this problem is related to the following location:
    at public javax.xml.bind.JAXBElement com.company.myproject.specificmodule.v2.ObjectFactory.createDateEntered(javax.xml.datatype.XMLGregorianCalendar)
this problem is related to the following location:
    at public javax.xml.bind.JAXBElement com.company.myproject.commontypes.v2.ObjectFactory.createDateEntered(javax.xml.datatype.XMLGregorianCalendar)

这对CXF 2.2.11完全没问题。不知道为什么在最新的CXF中失败了。我尝试使用CXF 2.7.5生成wsdl2java,但没有运气。通过自定义JAXB绑定以使用不同的方法名来尝试了几个选项,但这也没有用。

你能告诉我这里出了什么问题吗?我强烈认为有一些CXF设置可以解决这个问题,因为相同的对象工厂类可以与旧版本的CXF一起使用。

0 个答案:

没有答案