Skeltoneコード内で SoapHeaderを取得する方法
もう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() で取得可能です。
面倒くさいですねぇ。。
moremagic
2013-11-10