Warum generierte Klassen von wsimport erfordert JAXBElement<ClassName> Parameter?

Ich habe eine WSDL-Datei, die von einem Axis2 Web-Service. Wenn ich Generiere eine client-stub mit wsimport angesichts der WSDL-Datei, die resultierenden Klassen erfordern JAXBElement Parameter. Warum ist es so?

Beispiel-Methode von einem der Generierten Klassen:

JAXBElement<DataBean> value;

public void setValue(JAXBElement<DataBean> value)
{
    this.value = ((JAXBElement<DataBean>) value);
}

Ich gehe davon aus, dass es wie folgt Aussehen (ohne die JAXBElement):

DataBean value;

public void setValue(DataBean value)
{
    this.value= (DataBean) value;
}

Den tutorials, die ich sah auf dem Netz nicht die Klassen zu JAXBElement. Was könnte das problem sein? Bitte beachten Sie, dass der server eine Axis2 web service und die WSDL-Datei automatisch generiert wird, von Axis2. Die Annahme ist, ich habe keine Kontrolle über den server.

Wie kann ich es machen das in einer Weise, dass wsimport nicht konvertieren, die Parameter zu JAXBElements?

Unten ist ein Auszug aus der WSDL-Datei: (ignoriert ich einige der tags, um nur die wesentlichen tags)

<xs:element name="getData">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" name="getData" nillable="true" type="ax220:getData"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

<xs:complexType name="getData">
    <xs:sequence>
        <xs:element minOccurs="0" name="value" nillable="true" type="ax219:DataBean"/>
    </xs:sequence>
</xs:complexType>

<wsdl:message name="getDataRequest">
    <wsdl:part name="parameters" element="ns:getData"/>
</wsdl:message>

<wsdl:message name="getDataResponse">
    <wsdl:part name="parameters" element="ns:getDataResponse"/>
</wsdl:message>

<wsdl:operation name="getData">
    <wsdl:input message="ns:getDataRequest" wsaw:Action="urn:getData"/>
    <wsdl:output message="ns:getDataResponse" wsaw:Action="urn:getDataResponse"/>
</wsdl:operation>

<wsdl:operation name="getData">
    <soap:operation soapAction="urn:getData" style="document"/>
    <wsdl:input>
        <soap:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
        <soap:body use="literal"/>
    </wsdl:output>
</wsdl:operation>

<wsdl:operation name="getData">
    <soap12:operation soapAction="urn:getData" style="document"/>
    <wsdl:input>
        <soap12:body use="literal"/>
    </wsdl:input>
    <wsdl:output>
        <soap12:body use="literal"/>
    </wsdl:output>
</wsdl:operation>

<wsdl:operation name="getData">
    <http:operation location="getData"/>
    <wsdl:input>
        <mime:content type="text/xml" part="parameters"/>
    </wsdl:input>
    <wsdl:output>
        <mime:content type="text/xml" part="parameters"/>
    </wsdl:output>
</wsdl:operation>
  • Kannst du die Teile der WSDL-wo DataBean definiert ist und in einer Nachricht verwendet und den Betrieb?
  • Ich veränderte meinen post enthalten die angeforderten Daten.
InformationsquelleAutor Arci | 2012-08-31
Schreibe einen Kommentar