Создание JAXBElement из wsdl схемы

Имеется вот такая wsdlка

<definitions
    xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
    xmlns:wsp="http://www.w3.org/ns/ws-policy"
    xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy"
    xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata"
    xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
    xmlns:tns="http://ru.kda.siebel"
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns:xsdLocal0="http://www.siebel.com/xml/KDA%20LBSV%20Rental%20Equipment%201C%20Request%20Callback"
    xmlns="http://schemas.xmlsoap.org/wsdl/"
    targetNamespace="http://ru.kda.siebel"
    xmlns:siebelwsse="http://schemas.xmlsoap.org/ws/2002/07/secext"
    name="SiebelCallbackRentalEquipment">
    <types>
        <xsd:schema elementFormDefault="qualified" attributeFormDefault="unqualified" targetNamespace="http://schemas.xmlsoap.org/ws/2002/07/secext">
            <xsd:element name="Security" type="siebelwsse:Security"/>
            <xsd:complexType name="Security">
                <xsd:sequence>
                    <xsd:element name="UsernameToken" maxOccurs="1" minOccurs="0" type="siebelwsse:UsernameToken"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="UsernameToken">
                <xsd:sequence>
                    <xsd:element name="Username" maxOccurs="1" minOccurs="0" type="xsd:string"/>
                    <xsd:element name="Password" maxOccurs="1" minOccurs="0" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:schema>
        <xsd:schema
            elementFormDefault="qualified"
            xmlns:xsdLocal0="http://www.siebel.com/xml/KDA%20LBSV%20Rental%20Equipment%201C%20Request%20Callback"
            attributeFormDefault="unqualified"
            targetNamespace="http://www.siebel.com/xml/KDA%20LBSV%20Rental%20Equipment%201C%20Request%20Callback"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <xsd:element name="Message" type="xsdLocal0:Message"/>
            <xsd:complexType name="MessageTopElmt">
                <xsd:sequence>
                    <xsd:element name="Message" maxOccurs="1" minOccurs="1" type="xsdLocal0:Message"/>
                </xsd:sequence>
            </xsd:complexType>
            <xsd:complexType name="Message">
                <xsd:sequence>
                    <xsd:element name="MessageID" maxOccurs="1" minOccurs="1" type="xsd:string"/>
                    <xsd:element name="DocumentNumber" maxOccurs="1" minOccurs="1" type="xsd:string"/>
                    <xsd:element name="DocumentDate" maxOccurs="1" minOccurs="1" type="xsd:string"/>
                    <xsd:element name="Result" maxOccurs="1" minOccurs="1" type="xsd:string"/>
                </xsd:sequence>
            </xsd:complexType>
        </xsd:schema>
    </types>
    <message name="LBSVRentalEquipment1CCallback_Input">
        <part name="RentalEquipment1CRequest" type="xsdLocal0:MessageTopElmt"/>
    </message>
    <message name="LBSVRentalEquipment1CCallback_Output">
        <part name="Error_spcCode" type="xsd:string"/>
        <part name="Error_spcMessage" type="xsd:string"/>
    </message>
    <message name="LBSVRentalEquipment1CCallback">
        <part name="Security" element="siebelwsse:Security"/>
    </message>
    <portType name="LBSVRentalEquipment1CCallback">
        <operation name="LBSVRentalEquipment1CCallback">
            <input message="tns:LBSVRentalEquipment1CCallback_Input"/>
            <output message="tns:LBSVRentalEquipment1CCallback_Output"/>
        </operation>
    </portType>
    <binding xmlns:ns1="http://kda.ru/siebel" name="SiebelCallbackRentalEquipmentBinding" type="tns:LBSVRentalEquipment1CCallback">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
        <operation name="LBSVRentalEquipment1CCallback">
            <soap:operation soapAction="rpc/http://kda.ru/siebel:LBSVRentalEquipment1CCallback"/>
            <input>
                <soap:header message="tns:LBSVRentalEquipment1CCallback" part="Security" use="literal"/>
                <soap:body use="literal" parts="RentalEquipment1CRequest" namespace="http://kda.ru/siebel"/>
            </input>
            <output>
                <soap:body use="literal" namespace="http://kda.ru/siebel"/>
            </output>
        </operation>
    </binding>
    <service name="SiebelCallbackRentalEquipment">
        <port name="SiebelCallbackRentalEquipment" binding="tns:SiebelCallbackRentalEquipmentBinding">
            <soap:address location="http://10.243.6.166:8080/CallbackRentalEquipment/SiebelCallbackRentalEquipment"/>
        </port>
    </service>
</definitions>

и по ней я хочу создать SOAP endpoint в спринге. С LBSVRentalEquipment1CCallback_Input вроде понятно, там тип MessageTopElmt, но у LBSVRentalEquipment1CCallback_Output только 2 тэга и во что его оборачивать для JAXBElement не очень понятно. SoapUI генерит вот такой ответ

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sieb="http://kda.ru/siebel">
   <soapenv:Header/>
   <soapenv:Body>
      <sieb:LBSVRentalEquipment1CCallbackResponse>
         <Error_spcCode>?</Error_spcCode>
         <Error_spcMessage>?</Error_spcMessage>
      </sieb:LBSVRentalEquipment1CCallbackResponse>
   </soapenv:Body>
</soapenv:Envelope>

Есть какие-то решения для такого случая?


Ответы (0 шт):