我有以下问题,无法找到一个解决方案:
该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 {
你有任何想法,为什么我得到这个错误?
你在OSGi的运行?我已经看到了一些类似的问题与包信息不是被拾起正确那里。
另一种选择可能是对-xjc-NPA标志添加到WSDL2Java的命令,必须在所有它不使用包的信息,并坚持该命名空间中的所有其他地方。