このトピックには、以下のセクションが含まれています。
入力メッセージのすべてまたは一部を Web サービスに送信された要求として使用して、その Web サービスと対話するには、HTTPRequest ノードを使用します。 メッセージをメッセージ・フロー内の後続のノードに伝搬する前に、Web サービス応答の内容を追加した入力メッセージの内容を使用して新規出力メッセージを作成するよう、ノードを構成することもできます。
このノードは、入力メッセージの特定の内容から HTTP 要求を構成し、それを Web サービスに送信します。 また、Web サービスから応答を受信し、出力ツリーで組み込むために応答の内容を構文解析します。 構成で必要な場合には、HTTP ヘッダーを生成します。
このノードは TCP/IP を使用して外部サービスと直接対話するので、次の 3 つのタイプのエラーが発生する可能性があります。
このノードは、HTTPInput ノードまたは HTTPReply ノードを含まないメッセージ・フローで使用できます。
HTTPRequest ノードは、次のメッセージ・ドメインのメッセージを処理します。
ワークベンチでは、HTTPRequest ノードは次のアイコンで表されます。
このノードを使用して、2 つの異なる方法で、Web サービスへの仲介者として動作するメッセージ・フローを構成できます。
HTTPInput ノードの説明に、このオプションの説明と、その使用法に関する 2 つの例があります。
任意のトランスポートを使用してブローカーに接続するクライアントからの入力メッセージを受信し、同一のまたは他のトランスポートを使用してブローカーに接続するクライアントに出力メッセージを送信するメッセージ・フローを構成できます。 メッセージ・フロー内で HTTPRequest ノードを使用して、入力メッセージを開始したソース・アプリケーションにかかわりなく Web サービスと対話できます。
たとえば、WebSphere MQ アプリケーションはメッセージをキューに書き込みます。 そのメッセージ (MQInput ノード) を取り出して HTTPRequest ノードに伝搬するメッセージ・フローを設計します。 HTTPRequest ノードは、応答メッセージ内のオリジナルの入力メッセージの内容に関連した情報を戻す Web サービスと対話します。 たとえば、現行の株価をストック・オプションのリストに追加したり、検索要求に応えて URL のリストを戻したりできます。 HTTPRequest ノードは情報を Compute ノードに渡し、Compute ノードは (MQReply ノードによって) 発信元のアプリケーションに対する応答を生成します。
HTTPRequest ノードのインスタンスをメッセージ・フローに入れると、HTTPRequest ノードを構成することができます。 エディター・ビューでノードを右マウス・ボタンでクリックし、「プロパティー (Properties)」をクリックします。 ノードの基本プロパティーが表示されます。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。
以下のように、HTTPRequest ノードを構成します。
最初の 2 つのオプションでは、メッセージ・フローを通して入力メッセージが渡されるたびに URL を設定するという、動的方式が可能です。 これらのオプションのどちらかを使用するには、メッセージ・フローの中の HTTPRequest ノードの前に Compute ノードを組み込み、必要な値の作成と初期化を行わなければなりません。
3 番目のオプションでは、このノードが受信するすべてのメッセージで値が固定します。 これは、残りのフィールドが作成されていない場合や、ヌル値である場合に使用されるデフォルト値として便利な場合があります。 どちらかのフィールドに値がある場合、このプロパティーの設定は無視されます。
X-Original-HTTP-URL、LocalEnvironment.Destination.HTTP.RequestURL、またはこのプロパティーに設定した値が有効であることを確認します。 有効でないならば、ノードは例外を生成し、メッセージは failure ターミナルに伝搬されます。
要求メッセージに入力メッセージのサブセットを含めたい場合は、このチェック・ボックスのチェックを外して「ツリー内の要求メッセージ位置 (Request message location in tree)」プロパティーを完成させます。
リファレンス内の式を含む、任意の有効な ESQL フィールド・リファレンスを入力することができます。 たとえば、以下のように入力します。
InputRoot.XMLNS.ABC
「入力メッセージ全体を要求として使用 (Use whole input message as request)」チェック・ボックスを選択した場合、このプロパティーは無視されます。
適切なメッセージ・ツリーの内容を構文解析してビット・ストリームを作成するとき、入力メッセージの本体に関連付けられ、「プロパティー (Properties)」フォルダーに保管されているメッセージ・プロパティー (ドメイン、セット、タイプ、および形式) が使用されます。
入力メッセージの内容の一部を使用して、Web サービス応答メッセージを出力メッセージに組み込みたい場合は、このチェック・ボックスのチェックを外して、「ツリー内の応答メッセージ位置 (Response message location in tree)」プロパティーを完成させます。 このプロパティーをクリアした場合、ノードは入力メッセージを出力メッセージにコピーし、指定された位置で、Web サービス応答メッセージを出力メッセージに上書きします (入力メッセージ自体は変更されません)。
リファレンス内の式、および新規フィールド・リファレンス (応答用にメッセージ・ツリー内に新規ノードを作成するため) を含む、任意の有効な ESQL フィールド・リファレンスを入力できます。 たとえば、以下のように入力します。
OutputRoot.XMLNS.ABC.DEFまたは
Environment.WSReply
「入力メッセージを Web サービス応答と置換 (Replace input message with web service response)」チェック・ボックスを選択した場合、このプロパティーは無視されます。
応答ビット・ストリームを構文解析してメッセージ・ツリーの内容を作成するとき、ノードの「デフォルト (Default)」プロパティー (後述) に指定したメッセージ・プロパティー (ドメイン、セット、タイプ、および形式) が使用されます。
ノードが要求メッセージに対して HTTPRequestHeader を生成するようにしたくない場合には、「デフォルト HTTP ヘッダーの入力からの生成 (Generate default HTTP headers from input)」チェック・ボックスからチェックマークを外します (デフォルトの設定ではチェックマークが付けられています)。 要求メッセージに組み込む HTTPRequestHeader の内容を制御するには、入力メッセージに HTTPRequestHeader を追加するための Compute ノードを、メッセージ・フローの中のこの HTTPRequest の前の位置に組み込み、このチェック・ボックスのチェックマークを外してください。
HTTPRequestHeader または HTTPInputHeader に Web サービス・ヘッダーがない場合には、デフォルト値を使用して、次の表に示されている Web サービス・ヘッダーも追加します。
ヘッダー | デフォルト値 |
---|---|
SOAPAction | "" (空ストリング) |
Content-Type | text/xml; charset=utf-8 |
Host | 要求が送信されるホスト名 |
HTTPRequestHeader または HTTPInputHeader にオプションのヘッダー Content-Length がない場合、正しい計算値を使用して、このヘッダーも追加します。
入力メッセージの内容の一部を使用して、Web サービス・エラー・メッセージを出力メッセージに組み込みたい場合は、このチェック・ボックスのチェックを外して、「エラー・メッセージの位置」プロパティーを完成させます。 このプロパティーをクリアした場合、ノードは入力メッセージを出力メッセージにコピーし、指定された位置で、Web サービス・エラー・メッセージを出力メッセージに上書きします (入力メッセージ自体は変更されません)。
リファレンス内の式、および新規フィールド・リファレンス (応答用にメッセージ・ツリー内に新規ノードを作成するため) を含む、任意の有効な ESQL フィールド・リファレンスを入力できます。 たとえば、以下のように入力します。
OutputRoot.XMLNS.ABC.DEFまたは
Environment.WSError
「入力をエラーで置換」チェック・ボックスを選択した場合、このプロパティーは無視されます。
Web サービスによってエラー・メッセージが戻される場合、これらのプロパティーの値は無視され、メッセージは BLOB パーサーによって構文解析されます。
XML、XMLNS、JMS、および BLOB パーサーの場合、「メッセージ・セット (Message Set)」フィールドはブランクのままにしてください。
XML、XMLNS、JMS、および BLOB パーサーの場合、「メッセージ・タイプ (Message Type)」フィールドはブランクのままにしてください。
XML、XMLNS、JMS、および BLOB パーサーの場合、「メッセージ形式 (Message Format)」フィールドはブランクのままにしてください。
障害宛先は、トレース・ノード出力の障害宛先のように動作します。 したがって、たとえば「ユーザー・トレース (User Trace)」が選択された場合には、メッセージ・フローのユーザー・トレース・フラグの設定にかかわりなく、トレース・エントリーが書き込まれます。
「キャンセル (Cancel)」をクリックすると、ダイアログを閉じてプロパティーの変更をすべて破棄します。
メッセージをさらに処理したり、エラーを処理したり、あるいはメッセージを追加の宛先に送信するために、このノードの out ターミナル、error ターミナル、または failure ターミナルをこのメッセージ・フローの別のノードに接続します。 error ターミナルを接続していない場合、メッセージは廃棄されます。 failure ターミナルに接続していない場合、ブローカーはデフォルトのエラー処理を行います。 これについては、メッセージ・フローのエラー処理で説明します。
HTTPRequest ノード・ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
In | ノードが処理するメッセージを受け入れる入力ターミナル。 |
Failure | ノード内の処理で障害が検出された場合に、メッセージがルーティングされる出力ターミナル。 |
Out | Web サービス要求が正常終了したことが示され、なおかつこのメッセージ・フロー内でさらに処理が必要な場合にメッセージがルーティングされる出力ターミナル。 |
Error | プロパティー「HTTP 転送を使用」を設定していない場合に、200 から 299 の範囲に当てはまらない HTTP 状況コード (転送コード (3xx) を含む) を含んだメッセージの送信先となる出力ターミナル。 |
以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。
HTTPRequest ノードの「基本 (Basic)」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
Web サービス URL (Web Service URL) | はい | はい | Web サービスの URL。
次の形式で提供する必要があります。 http://<hostname>[:<port>]/[<path>]。ここでは、
|
|
要求タイムアウト (Request Timeout) | はい | いいえ | 120 | ノードが、Web サービスからの応答を待機する時間 (秒単位)。 有効な範囲は、1 から (231)-1 です。 無期限に待機することを示す値を入力することはできません。 |
HTTP プロキシーの位置 | いいえ | はい | 要求の送信先のプロキシー・サーバーの位置。 これは、hostname:port という形式でなければなりません。 | |
HTTP 転送を使用 | はい | いいえ | 選択されていない | HTTP 転送に従うかどうか。 チェック・ボックスを選択すると、転送に従います。 このチェック・ボックスのチェックを外すと、転送は行われません。 |
HTTPRequest ノードの「拡張 (Advanced)」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
入力メッセージ全体を要求として使用 (Use whole input message as request) | はい | いいえ | 選択されている | 入力メッセージ本文全体を Web サービスに渡すかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合は、「ツリー内の要求メッセージ位置 (Request message location in tree)」を指定する必要があります。 |
ツリー内の要求メッセージ位置 (Request message location in tree) | はい | いいえ | InputRoot | Web サービスに送信するためにビット・ストリームが作成される開始位置。このプロパティーは ESQL フィールド・レファレンスの形式を取ります。 |
入力メッセージを Web サービス応答と置換 (Replace input message with web service response) | はい | いいえ | 選択されている | Web サービス応答メッセージが、作成された出力メッセージの内容として入力メッセージのコピーと置換されるかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合は、「ツリー内の応答メッセージ位置 (Response message location in tree)」を指定する必要があります。 |
ツリー内の応答メッセージ位置 (Response message location in tree) | はい | いいえ | OutputRoot | Web サービス応答のビット・ストリームから構文解析されたエレメントが保管される開始位置。このプロパティーは ESQL フィールド・レファレンスの形式を取ります。 |
入力からデフォルト HTTP ヘッダーを生成 (Generate default HTTP headers from input) | はい | いいえ | 選択されている | HTTPRequestHeader が生成されるかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合には、有効な HTTPRequestHeader が入力メッセージ内に存在している必要があります。must |
HTTPRequest ノードの「エラー」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
入力をエラーで置換 | はい | いいえ | 選択されている | 入力メッセージの内容をエラー・メッセージの内容で置換するかどうか。 このチェック・ボックスを選択すると、このアクションが実行されます。 このチェック・ボックスのチェックを外す場合は、「エラー・メッセージの位置」を指定する必要があります。 |
エラー・メッセージの位置 | はい | いいえ | OutputRoot | Web サービス・エラーのビット・ストリームから構文解析されたエレメントが保管される開始位置。 このプロパティーは ESQL フィールド・レファレンスの形式を取ります。 |
HTTPRequest ノードの「デフォルト (Default)」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン (Message Domain) | いいえ | いいえ | Web サービスから受信する応答メッセージのドメイン。 | |
メッセージ・セット (Message Set) | いいえ | いいえ | 応答メッセージのメッセージ・セット。 | |
メッセージ・タイプ (Message Type) | いいえ | いいえ | 応答メッセージのタイプ。 | |
メッセージ形式 (Message Format) | いいえ | いいえ | 応答メッセージの形式。 |
HTTPRequest ノードの「妥当性検査 (Validation)」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 (Validate) | はい | いいえ | 「なし (None)」 | 妥当性検査が行われるかどうか。 有効な値は、「なし (None)」および「内容および値 (Content and Value)」です。 |
障害アクション (Failure Action) | はい | いいえ | ユーザー・トレース (User Trace) | 妥当性検査に障害が発生した場合の動作。 「妥当性検査 (Validate)」を「内容および値 (Content and Value)」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース (User Trace)」、「ローカル・エラー・ログ (Local Error Log)」および「例外 (Exception)」です。 |
タイミング (Timing) | はい | いいえ | 据え置き (Deferred) | 妥当性検査が行われるとき。「妥当性検査 (Validate)」を「内容および値 (Content and Value)」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「据え置き (Deferred)」、「即時 (Immediate)」および「完全 (Complete)」です。 |
値制約すべてを組み込む (Include All Value Constraints) | はい | いいえ | 選択されている | このプロパティーは変更できません。 |
修正 (Fix) | はい | いいえ | 「なし (None)」 | このプロパティーは変更できません。 |
HTTPRequest ノードの「説明 (Description)」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
簡略説明 (Short Description) | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 (Long Description) | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ac04595_ |