CXF JAXB JAXBEncoderDecoder解组错误:具有限定的元素时意外元件

问题描述 投票:2回答:1

我有以下问题,无法找到一个解决方案: 该WSDL有elementFormDefault="qualified",在响应中,我收到我的CXF客户端的所有元素都与命名空间前缀,但JAXB抛出一个异常

org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"unm:ENTSCWS", local:"searchReturn"). Expected elements are 
    at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:661)
    at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:533)
    at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:128) ...

如果我在elementFormDefault="unqualified"它工作WSDL改变,但我不能改变WSDL,它应该有与命名空间前缀的元素。

该package-info.java包含annotaction:

@javax.xml.bind.annotation.XmlSchema(namespace = "unm:ENTSCWS", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package entscws;

响应类包含注释:

@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "searchReturn"
})
@XmlRootElement(name = "searchResponse")
public class SearchResponse {

你有任何想法,为什么我得到这个错误?

web-services wsdl jaxb cxf
1个回答
6
投票

你在OSGi的运行?我已经看到了一些类似的问题与包信息不是被拾起正确那里。

另一种选择可能是对-xjc-NPA标志添加到WSDL2Java的命令,必须在所有它不使用包的信息,并坚持该命名空间中的所有其他地方。

© www.soinside.com 2019 - 2024. All rights reserved.