Skeltoneコード内で SoapHeaderを取得する方法

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


ケルトンコードの構成

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

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


こんな感じです。

○○○MessageReceiver → AbstractMesaggeReceiver → ○○○Skeltone


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

SoapHeaderの取得方法


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

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


面倒くさいですねぇ。。