もう21世紀ですが SOAP通信をはじめてやってます。
SOAPっていつまで使うんだろう。。><;


スケルトンコードの構成

wsdl2javaでソースコードを生成すると
WSDLで記述されているサービスを提供するためのSkeltoneコードができます。
Skeltoneクラスと MessageReceiverクラスが自動生成されます

Skeltoneコードはorg.apache.axis2.receivers.AbstractMessageReceiverを
継承したクラスからinvokeBisineLogic(MessageContext)でよびだされます。


こんな感じです。

1
2
3
4
<blockquote>
    <p>○○○MessageReceiver → AbstractMesaggeReceiver → ○○○Skeltone</p>

</blockquote>


で、Skeltoneの中では データ部のオブジェクトクラスしか取れないのです。
つまりBodyタグ内しか取れないんです。
なので Soapヘッダが欲しいときは ○○○MessageReceiverで取得します。

SoapHeaderの取得方法


前置きが長くなりましたが
MessageContext#getEnvelope()#getHeader() で取得できます。

ちなみに SOAPEnvelope のXML文字列が欲しいときは
SOAPEnvelope#toString() で取得可能です。


面倒くさいですねぇ。。