このトピックには、以下のセクションが含まれています。
メッセージ・フローによって処理する Web サービス要求を受信するには、HTTPInput ノードを使用します。 HTTPInput ノードを HTTPReply ノードおよび HTTPRequest ノードと共に使用すると、ブローカーは Web サービスの仲介者として機能でき、Web サービス要求を WebSphere Message Broker でサポートされる他のメッセージ形式と同じ方法で変換してルーティングできます。 Web サービス要求は、標準 HTTP (1.0 または 1.1) フォーマット、または HTTP over SSL (HTTPS) フォーマットのどちらでも受け取ることができます。 HTTP または HTTPS 要求を扱うかどうかを選択するには、「HTTPS の使用」プロパティーを設定できます。
メッセージ・フローに HTTPInput ノードを組み込む場合には、同じフローに HTTPReply ノードも組み込むか、HTTPReply ノードが組み込まれた別のノードにメッセージを受け渡す必要があります (例えば、MQOutput ノードを介して、MQInput ノードで始まる 2 番目のフローへ)。 後者の場合、クライアントからの要求と、クライアントへの応答は、LocalEnvironment に保管された要求 ID で整合されます (後述)。
HTTPInput ノードは、次のメッセージ・ドメインのメッセージを処理します。
HTTPInput ノードは、Web サービス・クライアントからのメッセージを受信すると、適切なパーサーを起動して、メッセージのヘッダーおよび本文を解釈し、メッセージ・フローが内部で使用するメッセージ・ツリーを作成します。 このノードは入力メッセージの固有 ID を作成し、これを LocalEnvironment ツリーの LocalEnvironment.Destination.HTTP.RequestIdentifer に、24 バイトのバイナリー配列の形で保管します。 この値は HTTPReply ノードによって使用されます。この値には、一切変更を加えてはなりません。
HTTP メッセージは常に持続性を持たず、関連する順序はありません。
HTTP メッセージは、非トランザクションです。 ただし、メッセージ・フローがデータベースまたは WebSphere MQ キューなどの他の外部リソースと対話する場合、それらの対話はトランザクションとして実行されます。 HTTPInput ノードでは、メッセージ・フローの終了方法、およびエラー処理に対する構成方法 (例えば、障害の発生したターミナルを接続する方法) に応じて、コミットまたはロールバックが提供されます。 メッセージ・フローが HTTPInput ノードによってロールバックされる場合、障害メッセージが生成され、クライアントに戻されます。 障害のフォーマットは、「障害フォーマット」プロパティーによって定義されます。
このメッセージ・フローのダウンストリームで例外が発生し、キャッチされずにノードに戻された場合、このノードはクライアントへのエラー応答を構成します。 このエラーは例外から派生し、エラーのフォーマットは「障害フォーマット」プロパティーによって定義されます。
HTTPInput ノードで開始するメッセージ・フローに出力ノードを組み込む場合、その出力ノードはサポートされる出力ノードのいずれかにできます (ユーザー定義の出力ノードも含む)。 必要な任意の変換を提供するようにブローカーに要求するようにメッセージ・フローを構成できますので、Web サービス・クライアントからメッセージを受け取る、サポートされるトランスポートすべてを使用してブローカーに接続する クライアント用のメッセージを生成する、メッセージ・フローを作成できます。
サブフローとして使用するメッセージ・フローを作成する場合には、標準入力ノードを使用することはできず、入力ノードのインスタンスを最初のノードとして使用して、サブフロー用の in ターミナルを作成する必要があります。
ご使用のメッセージ・フローが Web サービス要求を受信しない場合には、サポートされる入力ノードのいずれかを選択できます。
ワークベンチでは、HTTPInput ノードは次のアイコンで表されます。
HTTPInput ノードは、HTTP または HTTPS メッセージを受け入れる必要のあるどのメッセージにおいても使用できます。 この最も一般的な例は、Web サービスをインプリメントするメッセージ・フローです。 Web サービス・アプリケーションについて詳しくは、Web サービス・アプリケーションを参照してください。
HTTPInput ノードのインスタンスをメッセージ・フローに入れると、HTTPInput ノードを構成することができます。エディター・ビューでノードを右クリックし、「プロパティー」をクリックします。 ノードの基本プロパティーが、プロパティー・ダイアログに表示されます。
値を入力する必要のある (デフォルト値が定義されていない) すべての必須プロパティーには、プロパティー・ダイアログにアスタリスクが表示されます。
以下のように、HTTPInput ノードを構成します。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ・セット」フィールドはブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、IDOC、MIME、および BLOB パーサーの場合、「メッセージ・タイプ」はブランクのままにしてください。
XML、XMLNS、XMLNSC、JMS、MIME、および BLOB パーサーの場合、「メッセージ形式」フィールドはブランクのままにしてください。
詳細については、メッセージの妥当性検査およびMRM ドメインのメッセージの妥当性検査プロパティーを参照してください。
「キャンセル」をクリックすると、ダイアログを閉じてプロパティーに対して行った変更をすべて破棄します。
HTTPInput は、out ターミナルに正常に取り出される各メッセージをルーティングします。 メッセージの妥当性検査が失敗すると、メッセージは failure ターミナルにルーティングされます。 ノードをこのターミナルに接続し、この状態を処理することができます。 failure ターミナルに接続していない場合、メッセージは破棄され、「最大クライアント待機時間」が満了して、TCP/IP リスナーはエラーをクライアントに戻します。 他のいかなる状況にあっても、メッセージが failure ターミナルにルーティングされることはありません。
メッセージ・フロー内でさらに例外がスローされた後、このノードによってメッセージがキャッチされる場合、メッセージは catch ターミナルにルーティングされます。 catch ターミナルに接続していない場合、メッセージは破棄され、「最大クライアント待機時間」が満了して、TCP/IP リスナーはエラーをクライアントに戻します。
HTTPInput ノード・ターミナルについては、次の表に説明されています。
ターミナル | 説明 |
---|---|
Failure | エラーが発生した場合にメッセージがルーティングされる出力ターミナル。 |
Out | 正常に取り出された場合に、メッセージがルーティングされる出力ターミナル。 |
Catch | 例外がダウンストリームでスローされ、ノードによってキャッチされた場合に、メッセージがルーティングされる出力ターミナル。 |
以下の表でノードのプロパティーを説明します。M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、プロパティー・ダイアログにアスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 かどうかを示します (メッセージ・フローを bar ファイルに追加してデプロイするとき、値を変更できます)。
HTTPInput ノードの「基本」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
URL セレクター | はい | はい | Web サービス要求が取り出される位置を識別します。 必要とする URL が http://<hostname>[:<port>]/[<path>] の場合、/<path> または /<path fragment>/* を指定します。* はワイルドカードで、ここには何でも指定することができます。 | |
最大クライアント待機時間 | はい | いいえ | 180 | リスナーがエラー・メッセージをクライアントに戻すまでに待機する時間 (秒単位)。 有効範囲は、0 (無期限待機を表す) から (231)-1 です。 |
障害フォーマット | いいえ | はい | SOAP 1.1 | プロパティーの値は、「SOAP 1.1」、「SOAP 1.2」、または「HTML」 のいずれかになります。 このプロパティーは、クライアントに戻されるすべての HTTP エラーのフォーマットを定義します。 |
HTTPS の使用 | いいえ | はい | いいえ | ノードがセキュア HTTP を受け入れるかどうかを識別します。 |
HTTPInput ノードの「デフォルト」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
メッセージ・ドメイン | いいえ | いいえ | 着信メッセージの構文解析に使用されるドメイン。 | |
メッセージ・セット | いいえ | いいえ | 着信メッセージが定義されているメッセージ・セットの名前または ID。 | |
メッセージ・タイプ | いいえ | いいえ | 着信メッセージの名前。 | |
メッセージ形式 | いいえ | いいえ | 着信メッセージの物理フォーマットの名前。 |
HTTPInput ノードの妥当性検査プロパティーについては、次の表に説明されています。
これらのプロパティーの詳細については、MRM ドメインのメッセージの妥当性検査プロパティーを参照してください。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
妥当性検査 | いいえ | はい | なし | 妥当性検査が行われるかどうか。 有効な値は、「なし」、「内容と値」、および「内容」です。 |
失敗処置 | いいえ | いいえ | 例外 | 妥当性検査に障害が発生した場合の動作。 「妥当性検査」を「内容」または「内容と値」に設定した場合にのみ、このプロパティーを設定できます。 有効な値は、「ユーザー・トレース」、「ローカル・エラー・ログ」、「例外」、および「例外リスト」です。 |
すべての値制約を含める | いいえ | いいえ | 選択されている | このプロパティーは編集できません。 チェック・ボックスが選択されていることにより示されるデフォルトのアクションは、基本値制約検査が「内容と値」妥当性検査に含まれるということです。 |
修正 | いいえ | いいえ | なし | このプロパティーは編集できません。 |
HTTPInput ノードの汎用メッセージ・オプションのプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
構文解析のタイミング | いいえ | いいえ | 要求時 | このプロパティーは、入力メッセージを構文解析する時を制御します。
有効な値は、「要求時」、「即時」、および「完全」です。
このプロパティーの詳細については、要求時の構文解析を参照してください。 |
MQRFH2C コンパクト・パーサーを MQRFH2 ドメインに使用 | いいえ | いいえ | 選択されていない | このプロパティーは、MQRFH2 パーサーの代わりに、MQRFH2C コンパクト・パーサーを MQRFH2 ヘッダーに使用するかどうかを制御します。 |
HTTPInput ノードの XMLNSC パーサー・オプションのプロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
XMLNSC コンパクト・パーサーを XMLNS ドメインに使用 | いいえ | いいえ | 選択されていない | ![]() ![]() |
混合内容保存モード | いいえ | いいえ | なし | このプロパティーは、XMLNSC パーサーが入力メッセージ内に混合テキストを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、混合テキストに対してエレメントが作成されます。 「なし」を選択すると、混合テキストは無視されて、エレメントは作成されません。 |
コメント保存モード | いいえ | いいえ | なし | このプロパティーは、XMLNSC パーサーが入力メッセージ内にコメントを検出したとき、メッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、コメントに対してエレメントが作成されます。 「なし」を選択すると、コメントは無視されて、エレメントは作成されません。 |
処理命令保存モード | いいえ | いいえ | なし | このプロパティーは、XMLNSC パーサーが入力メッセージ内に処理命令を検出したとき、これらのメッセージ・ツリー内にエレメントを作成するかどうかを制御します。 有効な値は、「なし」および「すべて」です。「すべて」を選択すると、処理命令に対してエレメントが作成されます。 「なし」を選択すると、処理命令は無視されて、エレメントは作成されません。 |
HTTPInput ノードの「説明」プロパティーについては、次の表に説明されています。
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
簡略説明 | いいえ | いいえ | ノードの簡単な説明 | |
詳細説明 | いいえ | いいえ | メッセージ・フロー内のノードの目的を説明するテキスト |