HTTP フローでの作業

このトピックでは、HTTP メッセージ・フローを使用して Web サービスと対話する場合に役立つ情報を提供します。 このトピックは、続く Web サービスのシナリオ セクションと共に読むと便利です。

HTTPS
HTTPS の使用方法については、SSL 認証のインプリメント を参照してください。
返信用のHTTP 状況コードの設定
デフォルトの HTTP 状況コードは 200であり、OK を意味しています。 これは、いくつかの方法で変更できます。
  • プロパティー「入力または応答から HTTP ヘッダーを生成する」が選択されている場合、 HTTPReply ノードは状況コード用の HTTP 応答ヘッダーをスキャンします。 応答ヘッダーは HTTPRequest ノードによって作成され、 Web サービスからの応答の一部として提供される HTTP ヘッダーを表します。 HTTPReply ノードは状況コードを検索し、独自の状況コードをこの値に設定します。
  • LocalEnvironment にある Destination.HTTP.ReplyStatusCode フィールドで状況コードを設定することができます。 設定する場合、設定する値は応答ヘッダーから検索されたいかなる設定値もオーバーライドします。

Compute ノードにある特定のヘッダー (他のすべての設定値をオーバーライドする出力メッセージの HTTPReplyHeader セクションにある X-Original-HTTP-Status-Code) で返信状況も設定することができますが、このためには LocalEnvironment の内容を使用することをお勧めします。

LocalEnvironment.Destination.HTTP.RequestIdentifier を使用する
HTTPInput ノードが入力要求メッセージを受け取る場合、 LocalEnvironment フィールドの Destination.HTTP.RequestIdentifier を、 要求を送った Web サービス・クライアントを識別する固有値に設定します。 適切な場合、この値を参照して、他の場所にその値を保管することができます。

たとえば、(ブローカーによる既存の Web サービスの呼び出し に示されているように) 既存の WebSphere MQ アプリケーションと 対話する一対のメッセージ・フローを設計する場合、この値を要求フローに保管して応答フローに復元することにより、その応答を正しいクライアントが受け取ることを保証できます。 そうする場合、データを変更してはならず、データを BLOB として保存する必要があります。

HTTPReply ノードは、LocalEnvironment からこの値を抽出し、 特定のクライアントに送られるように、返信をセットアップします。

HTTPInput ノードと HTTPReply ノードの両方が含まれているメッセージ・フローを設計する場合、 値は HTTPInput ノードによって LocalEnvironment 内に設定されますが、 HTTPReply ノードはそれを使用しません。 したがって、メッセージ・フローが同じフローに両方のノードおよび Compute ノードを含んでいる場合、 メッセージ・ツリーのどのコンポーネントが Compute ノード (「Compute モード」 プロパティー)によって 入力メッセージから出力メッセージにコピーされるかを指定するとき、LocalEnvironment ツリーを含む必要はありません。

HTTPRequest ノードの URL の動的設定
HTTPRequest ノードでプロパティー「デフォルト Web サービス URL」を設定して、ウェブ・サービス要求用の宛先 URL を決定できます。 値セットをプロパティーにオーバーライドするために、メッセージ・フロー内の HTTPRequest ノードの前に、 Compute ノードを構成することができます。 LocalEnvironment.Destination.HTTP.RequestURL に URL ストリングを保管する ESQL をコーディングします。これは HTTPRequest ノードによって検索され、ノード・プロパティー値の代わりに使用されます。

Compute ノードにある要求メッセージ (他のすべての設定値をオーバーライドする)の HTTPRequestHeader セクションにある特定のヘッダー X-Original-HTTP-URL で要求 URL も設定することができますが、 このためには LocalEnvironment の内容を使用することをお勧めします。

HTTPReply ノードのための「返信または応答からデフォルト HTTP ヘッダーを生成」の設定
HTTPReply ノードのプロパティー・ダイアログで 「返信または応答からデフォルト HTTP ヘッダーを生成」チェック・ボックスを選択する場合、ノードには Web サービス・クライアントに送られる応答のヘッダーの最小セットが含まれています。 入力として受け取るメッセージ内の HTTPResponseHeader にある任意のヘッダーも含まれています。

HTTPReply ノードは常に Content-Length ヘッダーを再書き込みし (「入力または応答からデフォルト HTTP ヘッダーを生成」チェック・ボックスのチェックをクリアにした場合でさえ)、 内容が正しいことを保証します。

他のすべてのヘッダーは HTTPResponseHeader からコピーされます。 この後に、Content-Type ヘッダーがない場合、text/xml;charset=utf-8 の値とともに追加されます。

HTTPReplyHeader セクションが、HTTPReply ノードによって受け取られるメッセージ内に存在し、 HTTPReply ノードの Output ターミナルが接続されている場合、 HTTPReplyHeader セクションは任意の変更された値または追加された値で更新されます。

HTTPRequest ノードのための「「入力からデフォルト HTTP ヘッダーを生成」の設定
HTTPRequest ノードのプロパティー・ダイアログで 「入力からデフォルト HTTP ヘッダーを生成」チェック・ボックスを選択する場合、 ノードには サーバーに送られる要求のヘッダーの最小セットが含まれています。 ノードには、入力として受け取るメッセージ内の HTTPInputHeader にある任意のヘッダーも含まれています。

HTTPRequest ノードは常に Content-Length ヘッダーを再書き込みし (「入力からデフォルト HTTP ヘッダーを生成」チェック・ボックスのチェックをクリアにした場合でさえ)、 内容が正しいことを保証します。

以下を除くすべてのヘッダーは、HTTPInputHeader からコピーされます。

  • Host ヘッダー (要求 URL か、着信するメッセージの HTTPRequestHeader セクションのどちらかを 基にして設定される)
  • Content-Length ヘッダー (すべてのケースで再書き込みされる)

いくつかのヘッダーは、着信する HTTPRequest または HTTPInput ヘッダー内で検出されない場合、 デフォルト値で生成されます。

  • SOAPAction ("" に設定される)
  • Host (このメッセージで使用される要求 URL を基にして設定される) これは値となることができます。
  • Content-Type (text/xml; charset=utf-8 に設定される)

ノードによって受け取られるメッセージの HTTPRequestHeader にある任意のヘッダーは、 同じメッセージの HTTPInputHeader にもある同じ名前のヘッダーをオーバーライドします。 受け取ったメッセージに HTTPRequestHeader が存在する場合、 HTTPRequestHeader は任意の変更された値または追加された値で更新されます。

関連概念
WebSphere MQ Web Services Transport
WSDL
関連タスク
メッセージ・フローの作成
デプロイ
デプロイメントの結果の検査
関連資料
HTTPInput ノード
HTTPReply ノード
HTTPRequest ノード
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2005 Last updated: 11/07/2005
ac20450_