既存の Java™ API for XML-based RPC (JAX-RPC) Web サービス・クライアントを有効にすると、
トランスポート・ヘッダーを使用して、Web サービス要求とともにアプリケーション定義情報を
送信することができます。
始める前に
トランスポート・ヘッダーを送信できるようにする JAX-RPC Web サービス・クライアントが必要になります。
トランスポート・ヘッダーの送信は、Web サービス・クライアントによってのみサポートされ、HTTP および JMS トランスポートについてのみサポートされています。Web サービス・クライアントは、JAX-RPC API を、ゲートウェイ機能などの中間レイヤーを経由せずに直接呼び出す必要があります。Web サービス・サーバーのトランスポート・ヘッダーの送信および取得は、非 Web サービス API を使用して行います。
このタスクについて
JAX-RPC プログラミング・モデルを使用する場合、
クライアントはトランスポート・ヘッダー内の値を送信するために、
Stub または Call オブジェクトのプロパティーを設定する必要があります。
このプロパティーを設定すると、関連プロパティーが null に設定されるか、または
Stub または Call オブジェクトが廃棄されるまで、Stub または Call オブジェクトに対する後続のリモート・メソッド呼び出し
のすべての要求内で値が設定されます。
アウトバウンド要求でトランスポート・ヘッダー内の値を送信するには、
以下のようにクライアント・コードを変更します。
手順
- トランスポート・ヘッダー ID を含む java.util.HashMap オブジェクトを作成します。
- クライアントが送信するトランスポート・ヘッダーごとに、
エントリーを HashMap オブジェクトに追加します
- トランスポート・ヘッダー ID と正確に一致するストリングを HashMap
エントリー・キーに設定します。 HTTP の場合の Cookie などのように予約済みヘッダー名でヘッダー ID を定義したり、
MyTransportHeader などのヘッダー ID をユーザー定義したりできます。
特定のヘッダー ID は固有の方法で処理されますが、ヘッダー ID 値に関しては、その他のチェックは行われません。
固有の考慮事項がある HTTP ヘッダー ID について詳しくは、トランスポート・ヘッダー・プロパティーのベスト・プラクティスを参照してください。HTTP_HEADER_SET_COOKIE などの共通ヘッダー ID ストリング定数は、com.ibm.websphere.webservices.Constants クラス内にあります。
- HashMap エントリーの値として、トランスポート・ヘッダーの値を含むストリングを指定します。
- com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES プロパティーを使用して、Stub または Call オブジェクトの HashMap エントリーを設定します。 REQUEST_TRANSPORT_PROPERTIES プロパティー値を設定すると、発信要求内でヘッダー値を設定する場合に
後続の呼び出しでその HashMap が使用されます。
REQUEST_TRANSPORT_PROPERTIES プロパティー値を >null に設定すると、
発信要求内でヘッダー値を設定する場合に後続の呼び出しで HashMap が使用されません。
これらのプロパティーについて詳しくは、
トランスポート・ヘッダー・プロパティーの文書を参照してください。
- Stub オブジェクトまたは Call オブジェクトに対して、リモート・メソッド呼び出しを発行します。 HashMap のヘッダーおよび関連値は、メソッド呼び出しごとに発信要求に追加されます。
呼び出しが HTTP を使用する場合、
トランスポート・ヘッダーは、HTTP 要求内の HTTP ヘッダーとして送信されます。
呼び出しが JMS を使用する場合、トランスポート・ヘッダーは、
JMS メッセージ・プロパティーとして送信されます。
プロパティーが正しく設定されていない場合、
API 使用法エラーが発生し、JAXRPCException エラーが出される場合があります。以下の要件が満たされている必要があります。満たされていない場合は、プロセスが失敗します。
- Stub または Call オブジェクトで設定されているプロパティー値は、
HashMap オブジェクトまたは null にする必要があります。
- HashMap を空にすることはできません。
- HashMap 内の各キーがストリング・オブジェクトである必要があります。
- HashMap 内の各値がストリング・オブジェクトである必要があります。
タスクの結果
JAX-RPC Web サービス・クライアントは、トランスポート・ヘッダーを送信するよう構成されました。