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