既存の Web サービス・クライアントで HTTP トランスポート・ヘッダーから値を取得できます。クライアント・コードを変更すると、着信応答の HTTP ヘッダーから情報を取得できます。
始める前に
HTTP トランスポート・ヘッダーを取得するために使用可能にできる Web サービス・クライアントが必要となります。
トランスポート・ヘッダーの取得は Web サービス・クライアントでのみサポートされており、HTTP トランスポート経由
でのみ送信できます。
Web サービス・クライアントは、Java API for XML-based RPC (JAX-RPC) API を、
ゲートウェイ機能などの中間レイヤーを経由せずに直接呼び出す必要があります。
Web サービス・サーバー・サイドの HTTP トランスポート・ヘッダーの送信および取得は、
非 Web サービス API を使用して行います。
このタスクについて
クライアントは、HTTP トランスポート・ヘッダーから値を取得するために、
スタブでプロパティーを設定する必要があります。
このプロパティーを設定すると、関連プロパティーが null に設定されるか、またはスタブが廃棄されるまで、
そのスタブへの後続のメソッド呼び出しに対する HTTP 応答から値が読み取られます。
インバウンド応答で HTTP トランスポート・ヘッダーの値を取得するには、
以下のようにクライアント・コードを変更します。
プロシージャー
- 取得しようとする HTTP ヘッダー ID
値と、応答でのこれらのヘッダーのための値を含む java.util.HashMap を作成します。
- クライアントが値を取得するヘッダーごとに、エントリーを HashMap に追加します。
- HTTP ヘッダー ID と正確に一致するストリングに HashMap エントリー・キーを設定します。
ヘッダー ID は、HTTP 用に定義されている ID (Cookie など) か、またはユーザー定義の
ID (MyHTTPHeader など) のいずれかです。
特定のヘッダー ID は特別な方法で処理されますが、ヘッダー ID 値を確認するためにその他のチェックは行われません。
特別な考慮事項があるヘッダー ID について詳しくは、HTTP トランスポート・ヘッダー・プロパティーのベスト・プラクティスを参照してください。
HTTP_HEADER_SET_COOKIE などの共通ヘッダー ID ストリング定数
は、com.ibm.websphere.webservices.Constants クラス内にあります。
HashMap エントリー値は無視されます。設定する必要はありません。
たとえば、空の HashMap (非ヌルだがキーを含まない値) を使用すると、HTTP 応答内のすべてのヘッダーの値が受信されます。
- com.ibm.websphere.webservices.Constants.RESPONSE_TRANSPORT_PROPERTIES プロパティーを
使用して、スタブで HashMap エントリーを設定します。
HashMap を設定すると、応答からヘッダーを取得するために後続の呼び出しで
RESPONSE_TRANSPORT_PROPERTIES プロパティーが使用されます。
このプロパティーを null に設定した場合は、ヘッダーが応答から取得されません。
使用するプロパティーについて詳しくは、HTTP
トランスポート・ヘッダーのプロパティーを参照してください。
- スタブに対してリモート・メソッド呼び出しを発行します。
HTTP 応答ヘッダーの値は、HashMap 内に配置されます。
API 使用法エラーが発生し、JAXRPCException が出される場合があります。
呼び出し時に以下の項目がチェックされ、エラーが発生している場合は例外がスローされます。
- スタブで設定されているプロパティー値が、null または HashMap のいずれかです。
- すべての HashMap キーが、非ヌルまたはストリングのインスタンスになるとは限りません。
結果
Web サービスが、HTTP トランスポート・ヘッダーを受信するように構成されました。