/ / CXF JAXB JAXBEncoderDecoder unmarshalling error: neočakávaný element pri kvalifikovaných prvkoch - web-services, wsdl, jaxb, cxf

CXF JAXB JAXBEncoderDecoder chyba unmarshalling: neočakávaný prvok pri kvalifikovaných prvkoch - web-services, wsdl, jaxb, cxf

Mám nasledujúci problém a nemôžem nájsť riešenie:
WSDL má elementFormDefault="qualified", v odpovedi, ktorú dostávam v mojom CXF klientovi, sú všetky elementy predponené menným priestorom, ale JAXB hodí výnimku

org.apache.cxf.interceptor.Chyba: Unmarshalling Chyba: neočakávaný element (uri: "unm: ENTSCWS", lokálny: "searchReturn"). Očakávané prvky sú na org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:661) na org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall (JAXBEncoderDecoder.java:533) na org.apache.cxf.jaxb.io.DataReaderImpl.read (DataReaderImpl.java:128) ...

Ak zmením WSDL elementFormDefault="unqualified" funguje, ale nemôžem zmeniť WSDL, mal by mať prvky predponené menným priestorom.

Balík-info.java obsahuje anotáciu:

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

Trieda odpovede obsahuje anotáciu:

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

Máte predstavu, prečo som túto chybu?

odpovede:

5 pre odpoveď č. 1

Ste v OSGi? Videl som niektoré podobné problémy s balíčkom-info nie je správne vyzdvihnúť tam.

Ďalšou možnosťou by mohlo byť pridanie príznaku -xjc-npa do príkazu wsdl2java, aby sa vôbec nepoužili informácie o balíku a držali menné priestory na všetkých ostatných miestach.