JAX-WSを使ってSOAPヘッダに独自のヘッダを付け足す方法

JAX-WSを使ってWebサービス・クライアントを作成する際に、送信するSOAPリクエストに対して独自ヘッダを付け足したい場合には以下のようにする(下記の例はstringValueというようなヘッダを付け足す場合)。

import com.sun.xml.ws.developer.WSBindingProvider;
import com.sun.xml.ws.api.message.Headers;

HelloPort port = helloService.getHelloPort();
WSBindingProvider bp = (WSBindingProvider)port;

bp.setOutboundHeader(
    Headers.create(new QName("simpleHeader"),"stringValue")
);

参照:

【追記】
JDK 6 Update 4に付属しているJAX-WS 2.1.1では、上記のクラスWSBindingProviderがcom.sun.xml.internal.ws.developer パッケージに含まれている。しかし、com.sun.xml.internalパッケージ配下は全てinternalなクラス(同一パッケージ内のクラスからのみアクセス可)のようで、外部からの利用は出来ないため、本記事の手法は残念ながら使えない。