Я пытаюсь использовать SOAP-сервис, генерируя заглушки с помощью maven cxf-codegen-plugin. Все в порядке с большинством услуг, кроме уродливого. В этом случае при вызове службы отправляет правильный ответ, но мои генерируемые окурки неспособны маршализация это генерировать исключение, как (я заменил URLs с именем, как urlx для краткости):cxf Unmarshalling Error: неожиданный элемент
javax.xml.ws.soap.SOAPFaultException: Unmarshalling Error: unexpected element (uri:"url3", local:"cap"). Expected elements are <{url1}descComune>....<{url1}cap>...
На самом деле Неопределенное поле является частью расширения, которое имеет указанное пространство имен, которое отличается от расширенного элемента. Здесь пространства имен DEF:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions ...xmlns:ns1="url1" ... xmlns:ns3="url3" ... targetNamespace="someUrl">
<wsdl:documentation>WSDatiPersonali</wsdl:documentation>
<wsdl:types>
<xs:schema xmlns:ax226="url0" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="url0">
протяженный хз, как:
<xs:schema xmlns:ax225="url1" xmlns:ax227="url0" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="url1">
<xs:import namespace="url0"/>
<xs:complexType name="Indirizzo">
<xs:sequence>
<xs:element minOccurs="0" name="cap" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
и расширяющая один:
<xs:schema xmlns:ax224="url3" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="url3">
<xs:complexType name="Indirizzo">
<xs:complexContent>
<xs:extension base="ns1:Indirizzo">
<xs:sequence>
............
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
Как вы можете видеть поле "колпачок" находится внутри отец, и когда один сын заполняется службой, cxf не может найти его под пространством имен сына.
У вас есть идеи по установке?
И вы получили элементы? Например, используя это: properties.put ("set-jaxb-validation-event-handler", "false"); У меня есть только нулевые объекты. – ronnyfm
Я отказался от использования JAXB и получил XMLBeans. – ronnyfm