SOAP通信における共通項目の隠蔽

Webサービスを公開したいとき、共通項目をコンシューマから隠蔽できた方が、作りが共通項目やそこに関わる部品に依存しない形にできる。

SOAP通信、というかJAX-RPCにおいて明示ヘッダと暗黙ヘッダがある。暗黙ヘッダの利用が一つの解にはなりそう。但し、JAX-WSでの仕様がどうなっているかだったり暗黙ヘッダなりの短所もあるので安易には使えない。*1

Webサービスにて、SOAPヘッダーのフィールドの使用を定義する2つの異なる方法(明示ヘッダーと暗黙ヘッダー)があります。その2つの相違点はWSDL定義にて明確になります。それは些細な設計の詳細に見えますが、生成されるJAX-RPCJavaコードに多大なるインパクトを与えます。特に暗黙ヘッダーの場合、portTypeの一部ではないヘッダー情報に対処するために追加的なコードが書き込まれ(または生成され)なくてはなりません。

以下に暗黙ヘッダのJAX-WSでの実装方法が載っているので参考までに。*2

JAX-WSのhelloworld的なものはこちら*3