Axis2 Web サービスからの WSDL ファイルがあります。指定された WSDL ファイルを使用してクライアント スタブを生成するwsimport
と、結果のクラスにJAXBElement
パラメーターが必要になります。なぜそうなのですか?
生成されたクラスの 1 つからのサンプル メソッド:
JAXBElement<DataBean> value;
public void setValue(JAXBElement<DataBean> value)
{
this.value = ((JAXBElement<DataBean>) value);
}
私はそれが次のようになることを期待しています(JAXBElementなし):
DataBean value;
public void setValue(DataBean value)
{
this.value= (DataBean) value;
}
ネットで見たチュートリアルでは、クラスを JAXBElement に設定していません。何が問題なのですか?サーバーは Axis2 Web サービスであり、WSDL ファイルは Axis2 によって自動生成されることに注意してください。サーバーを制御できないという前提があります。
wsimport
パラメータを JAXBElements に変換しないようにするにはどうすればよいですか?
以下は、WSDL ファイルからの抜粋です: (重要なタグのみを含めるために、いくつかのタグを無視しました)
<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>