14.8.10 他社製品と接続するときにHTTPヘッダ中のSOAPAction値の設定が必要なケースがあります。Application ServerのSOAPクライアントでSOAPAction値は設定できますか?
設定できます。RPC形態のSOAPアプリケーションを例に,SOAPAction値を設定する方法を説明します。
RPC形態の場合,WSDL内でSOAPAction値を指定する個所を直接変更して,そのWSDLからスタブのソースコードを自動生成することで,送信メッセージのSOAPAction値を指定します。Java2WSDLコマンドでWSDLを生成すると,SOAPAction値はデフォルトで「""」が設定されます。次に,SOAPAction値の指定個所を抜粋したWSDLの例を示します。
-
自動生成されたWSDLの例(デフォルト値)
<wsdl:binding name="UserInfoSoapBinding" type="intf:UserInfo"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getUserData"> <soap:operation soapAction="" /> <wsdl:input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost" use="literal" /> </wsdl:input>
-
SOAPAction値を変更したWSDLの例
<wsdl:binding name="UserInfoSoapBinding" type="intf:UserInfo"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="getUserData"> <soap:operation soapAction="http://localhost" /> <wsdl:input> <soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost" use="literal" /> </wsdl:input>