У меня следующая проблема, и я не могу найти решение:
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) ...
Если я изменяю в WSDL elementFormDefault="unqualified"
, он работает, но мне не разрешено изменять WSDL, в нем должны быть элементы с префиксом пространства имен.
Пакет-info.java содержит аннотацию:
@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 {
У вас есть идеи, почему я получаю эту ошибку?