サードパーティの SOAP Web サービスに接続しようとしています。HTTP SOAPActionヘッダーが空の文字列 ("")の場合にサービスが動作するようです。これは、wsdl のスニペットです。
<wsdl:binding name="detailsRequestMessage" type="tns:UssdPortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="details">
<soap:operation soapAction=""/>
<wsdl:input>
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
soapAction=""が表示される場所
Axis2 (1.5) wsdl2java を使用してスタブを生成しました。
私は次の結果を得ることを望んでいました( SoapUIで実行した場合の成功した出力):
POST /details HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: text/xml;charset=UTF-8
SOAPAction: ""
User-Agent: Jakarta Commons-HttpClient/3.1
Host: some.host
Content-Length: 323
しかし、代わりに私は得ています:
POST /details HTTP/1.1
Content-Type: text/xml; charset=UTF-8
SOAPAction: "http://some.url/wsussd/ussdtypes/UssdPortType/detailsRequest"
User-Agent: Axis2
Host: some.host
Content-Length: 300
何が問題なのか、またはプログラムでsoapActionをどのように設定すればよいのか、誰にも分かりますか?
ありがとう、ローネン