既存の 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 応答内のすべてのヘッダーの値が受信されます。
- HashMap 値を、HTTP ヘッダー内で送信するヘッダー値を含むストリングにを設定します。
- プロパティー com.ibm.websphere.webservices.Constants.REQUEST_TRANSPORT_PROPERTIES を使用して、
スタブで HashMap を設定します。
REQUEST_TRANSPORT_PROPERTIES プロパティー値を設定すると、発信要求内でヘッダー値を設定する場合に
後続の呼び出しでその HashMap が使用されます。
REQUEST_TRANSPORT_PROPERTIES プロパティー値をヌルに設定すると、
発信要求内でヘッダー値を設定する場合に後続の呼び出しで HashMap が使用されません。
HTTP トランスポート・ヘッダーのプロパティーについて詳しくは、HTTP トランスポート・ヘッダー・プロパティーの
ベスト・プラクティスを参照してください。
- スタブに対してリモート・メソッド呼び出しを発行します。
HashMap のヘッダーおよび関連値は、メソッド呼び出しごとに発信 HTTP 要求に追加されます。
プロパティーを適切に設定しないと、
JAXRPCException が発生する場合があります。
以下の要件を満たしている必要があります。
- スタブに設定されているプロパティー値は、HashMap オブジェクトまたは null である必要があります。
- HashMap を空にすることはできません。
- HashMap 内の各キーがストリング・オブジェクトである必要があります。
- HashMap 内の各値がストリング・オブジェクトである必要があります。
結果
Web サービス・クライアントが、HTTP トランスポート・ヘッダーを送信するよう構成されました。