java – JAXB,CXF:没有ObjectFactory与@XmlElementDecl的元素…与

前端之家收集整理的这篇文章主要介绍了java – JAXB,CXF:没有ObjectFactory与@XmlElementDecl的元素…与前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在使用JAXB和CXF创建一个WSDL第一个Web服务.我不拥有WSDL,所以我不能修改它.我使用 ftp://ftp.ihe.net/TF_Implementation_Material/ITI/wsdl/PIXManager.wsdl作为我的WSDL.我用CXF 2.3.0生成Java类.

Java类生成就行了,但是当我尝试在Web应用程序中运行它时,我收到一个错误

com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 17 counts of IllegalAnnotationExceptions

17个数字是格式

There's no ObjectFactory with an @XmlElementDecl for the element {urn:hl7-org:v3}assignedDevice.
        this problem is related to the following location:
            at protected javax.xml.bind.JAXBElement org.hl7.v3.QUQIMT021001UV01AuthorOrPerformer.assignedDevice

当我去上课时,即QUQIMT021001UV01AuthorOrPerformer,看看分配的设备,我看到这个

@XmlElementRef(name = "assignedDevice",namespace = "urn:hl7-org:v3",type = JAXBElement.class)
protected JAXBElement<COCTMT090300UV01AssignedDevice> assignedDevice;

当我看到包的ObjectFactory,我看到这一点

private final static QName _COCTMT090303UV01AssignedDeviceAssignedDevice_QNAME = new QName("urn:hl7-org:v3","assignedDevice");

我所有的17个错误都是类似的.为了让我的服务工作,我可以在代码或运行期间做什么?

解决方法

您在运行时使用什么Java版本?当使用Java 6运行时,我与OTA架构有类似的问题.通过对Maven配置进行以下更改,消除了这个问题:

>使用JAXB impl 2.1.*(而不是2.2)提供的范围,以匹配Java 6中包含的JAXB版本.>使用JAX-WS 2.1(而不是2.2)来匹配Java 6和JAXB 2.1.x.>将选项frontEnd添加到Maven cxf-codegen-plugin插件,并将其设置为jaxws21(或者如果在命令行中使用wsdl2java,请使用“-fe jaxws21”选项).

猜你在找的Java相关文章