WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

SOAPExtract ノード

SOAPExtract ノードを使用して SOAP エンベロープを削除すると、SOAP メッセージ本体のみを処理できるようになります。 このノードは、SOAP メッセージをそのオペレーション名に基づいて経路指定することもできます。 これらの機能は両方ともオプションです。これらはしばしば一緒に使用されるため、1 つのノードに含まれています。

このトピックには、以下のセクションが含まれています。

目的

SOAPExtract ノードは、以下の 2 つの機能を実行できます。

抽出機能
デフォルトの動作は、LocalEnvironment ツリー内の標準の場所 ($LocalEnvironment/SOAP/Envelope) へ SOAP エンベロープを切り離すことです。 代わりに、XPath 式を使用して明示的に場所を指定することもできます。 選択した場所にある既存の SOAP エンベロープは置き換えられます。
ルーティング機能
SOAP メッセージは、メッセージ内の SOAP 操作によって示されるメッセージ・フロー内の Label ノードに経路指定されます。 SOAP 操作は、SOAP 本体タグ内で識別されます。

メッセージ・セットおよびメッセージ形式を着信メッセージからコピーすることによって、出力メッセージのプロパティー・フォルダーにあるメッセージ・パーサー・オプションが、メッセージを構文解析するよう正しくセットアップされるようにしてください。 メッセージ・タイプは SOAP エンベロープのメッセージ本体の最初の子から派生します。

SOAP メッセージ本体の単一の子のみがサポートされます。

SOAPExtract ノードはパレットの「Web サービス」ドロワーに入っていて、ワークベンチでは次のアイコンによって表されます。

Filter ノード・アイコン

メッセージ・フロー内での SOAPExtract ノードの使用

このノードの使用法については、以下のサンプルを参照してください。

サンプルに関する情報は、WebSphere® Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。

SOAPExtract ノードの構成

SOAPExtract ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。

  1. オプション: 「説明」タブで、簡略説明詳細説明、あるいはその両方を入力します。 このタブで、ノードを名前変更することもできます。
  2. 「基本」タブで以下のようにします。
    1. 「エンベロープの除去」で、ノードが SOAP エンベロープを除去して「エンベロープの宛先」で指定されている場所に置くようにするか、またはメッセージに残すかを指定します。 デフォルト値では、ノードがエンベロープを除去します。
    2. 「エンベロープの宛先」に、ノードがエンベロープをコピーする宛先の場所を表す XPath 式を指定します。 デフォルトで、ノードは LocalEnvironment ($LocalEnvironment/SOAP/Envelope) へエンベロープをコピーします。
    3. 「宛先パス・モード」で、「エンベロープの宛先」プロパティーの動作を指定します。
      • 「パスの作成」: パスがまだ存在しない場所を指定する場合、ノードはツリーを作成します。 「エンベロープの宛先」では aaa/bbb/ccc 形式の単純式のみがサポートされます。 デフォルト。
      • 「既存のエレメントの XPath ロケーション」: 宛先エレメントが存在すると分かっている場合、「エンベロープの宛先」で任意の有効な XPath 1.0 式を使用できます。
    4. 「操作ラベルへ経路指定」で、ノードがメッセージを SOAP 操作 (メッセージ内で指定されている) へ経路指定する必要があるかどうかを指定します。 デフォルトは、ノードがメッセージを Out ターミナルに送信する設定です。
    5. 「ラベル接頭部」で、ノードがルーティングに使用するラベルの接頭部にする値を入力します。 接頭部を入力すると、サブフロー間での名前のスペーシングが可能になります。 デフォルトでは、メッセージのルーティングに使用されるラベル名には何の値も接頭部として付加されません。

サポートされるパーサー

このノードは、SOAP メッセージを処理するよう設計されています。 以下のいずれかのパーサーを使用します。
  • SOAP
  • XMLNSC
  • MRM
  • XMLNS
他の XML パーサーは、ネーム・スペースをサポートしないため、サポートされません。 正しいパーサーを使用していない、あるいは SOAP メッセージの基本的な構造に準拠しないメッセージが受信された場合、例外がスローされます。

SOAP メッセージに対して完全な妥当性検査は行われません。単に BODY 要素を含む必要があるだけです。

ターミナルおよびプロパティー

SOAPExtract ノードのターミナルについては、次の表に説明されています。

ターミナル 説明
In ノードが処理する SOAP メッセージを受け入れる入力ターミナル。
Out SOAP メッセージ本体を出力する (ノード・プロパティーで「エンベロープの除去」チェック・ボックスが選択されている場合には、エンベロープなしの) 出力ターミナル。
Failure 処理で障害が検出された場合に、メッセージがルーティングされる出力ターミナル。

以下の表は、ノード・プロパティーについて説明しています。 M の見出しの列は、プロパティーが必須 かどうかを示します (デフォルトが定義されていない場合に値を入力することが必要なら、アスタリスクのマークが付きます)。 C の見出しの列は、プロパティーが構成可能 (メッセージ・フローを BAR ファイルに追加してデプロイするとき、値を変更できる) かどうかを示します。

SOAPExtract ノードの「説明」プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
ノード名 いいえ いいえ ノード・タイプ ノードの名前。
簡略説明 いいえ いいえ   ノードの簡単な説明
詳細説明 いいえ いいえ   メッセージ・フロー内のノードの目的を説明するテキスト

SOAPExtract ノードの基本プロパティーについては、次の表に説明されています。

プロパティー M C デフォルト 説明
エンベロープの除去 いいえ いいえ 選択されている

チェック・ボックスを選択すると、ノードはメッセージから SOAP ヘッダーを取り外します。 SOAP ツリーの場合、ノードは、SOAP ツリーから SOAP.body の最初の子を Out ターミナルへ出力します。 これは、SOAP ツリーの全体から SOAP.body の最初の子を引いたものを「エンベロープの宛先」へ出力します。

このチェック・ボックスのチェックを外した場合、ノードはエンベロープをメッセージに残します。 SOAP ツリーの場合、ツリー全部が Out ターミナルに伝搬されます。

エンベロープの宛先 いいえ いいえ $LocalEnvironment/SOAP/Envelope ノードが SOAP エンベロープをコピーする宛先の場所を表す XPath 式。 以下の相関名を使用できます。
$Root
メッセージ・ツリーのルート。
$Body
メッセージ・ツリーのルートの最後の子。(/ と等価)
$LocalEnvironment
LocalEnvironment ツリーのルート。
$Environment
Global Environment ツリーのルート。
宛先パス・モード いいえ いいえ パスの作成 これは、「エンベロープの宛先」プロパティーの動作を決定します。 以下のプロパティーを設定します。
パスの作成
デフォルト。 パスが存在しない場所を指定する場合、ツリーが作成されます。 aaa/bbb/ccc の形式の単純式のみがサポートされます。
既存エレメントの XPath ロケーション
宛先エレメントが存在すると分かっている場合には、任意の有効な XPath 1.0 式を入力できます。
「操作」ラベルへ経路指定 いいえ いいえ 選択されていない このプロパティーは、ノードがメッセージを SOAP 操作 (メッセージ内で指定されている) へ経路指定する必要があるかどうかを決定します。

このチェック・ボックスを選択すると、メッセージは、SOAP 操作と一致する Label ノードへ経路指定されます。 一致する Label ノードが存在しない場合、例外がスローされます。 SOAP 本体の最初の子エレメントの名前が RouteToLabel 名の判別に使用されます。 WSDL タイプが「RPC リテラル」および「ラップされた文書リテラル」の場合、これが「操作」名です。 SOAP ツリーの場合、SOAP.body の最初の子が操作名を提供します。

このチェック・ボックスのチェックを外した場合、ノードはメッセージを Out ターミナルへ送信します。

ラベル接頭部 いいえ いいえ   ノードがルーティングに使用するラベルの接頭部にする値。 接頭部を入力すると、サブフロー間での名前のスペーシングが可能になります。
ノードのモニター・プロパティーが、次の表に説明されています。
プロパティー M C デフォルト 説明
イベント いいえ いいえ なし ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。

「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。

SOAP メッセージの例

着信 SOAP メッセージ

<?xml version="1.0"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://ws3.st.mqsi.ibm.com/App/DocLiteral1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
    <tns:requestHeader>
        <tns:assessorUrl>header1</tns:assessorUrl>
    </tns:requestHeader>
    </soapenv:Header>
    <soapenv:Body>
        <tns:requestAvailability>
            <tns:carDetails>body1</tns:carDetails>
            <tns:claimID>body2</tns:claimID>
            <tns:location>body3</tns:location>
            <tns:reqDate>body4</tns:reqDate>
        </tns:requestAvailability>
    </soapenv:Body>
</soapenv:Envelope>

エンベロープ解除されたメッセージ

操作名は requestAvailability です。 ネームスペースが操作から除去されていることに注意してください。

<?xml version="1.0"?>
<tns:requestAvailability
xmlns:tns="http://ws3.st.mqsi.ibm.com/App/DocLiteral1"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <tns:carDetails>body1</tns:carDetails>
    <tns:claimID>body2</tns:claimID>
    <tns:location>body3</tns:location>
    <tns:reqDate>body4</tns:reqDate>
</tns:requestAvailability>

除去されたエンベロープ

<?xml version="1.0"?>
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:tns="http://ws3.st.mqsi.ibm.com/App/DocLiteral1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <soapenv:Header>
        <tns:requestHeader>
            <tns:assessorUrl>header1</tns:assessorUrl>
        </tns:requestHeader>
    </soapenv:Header>
</soapenv:Envelope>
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:46:07


参照トピック参照トピック | バージョン 8.0.0.5 | ac60010_