SOAPExtract ノードを使用して SOAP エンベロープを削除すると、SOAP メッセージ本体のみを処理できるようになります。 このノードは、SOAP メッセージをそのオペレーション名に基づいて経路指定することもできます。 これらの機能は両方ともオプションです。これらはしばしば一緒に使用されるため、1 つのノードに含まれています。
このトピックには、以下のセクションが含まれています。
SOAPExtract ノードは、以下の 2 つの機能を実行できます。
メッセージ・セットおよびメッセージ形式を着信メッセージからコピーすることによって、出力メッセージのプロパティー・フォルダーにあるメッセージ・パーサー・オプションが、メッセージを構文解析するよう正しくセットアップされるようにしてください。 メッセージ・タイプは SOAP エンベロープのメッセージ本体の最初の子から派生します。
SOAP メッセージ本体の単一の子のみがサポートされます。
SOAPExtract ノードはパレットの「Web サービス」ドロワーに入っていて、ワークベンチでは次のアイコンによって表されます。
サンプルに関する情報は、WebSphere® Message Broker Toolkit に統合されているインフォメーション・センター、またはオンライン・インフォメーション・センターを使用する場合にのみ表示できます。 サンプルは、WebSphere Message Broker Toolkit に統合されているインフォメーション・センターを使用する場合にのみ実行できます。
SOAPExtract ノードのインスタンスをメッセージ・フローに入れると、それを構成することができます。メッセージ・フロー・ノードの構成を参照してください。 ノードのプロパティーが、「プロパティー」ビューに表示されます。
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 式。 以下の相関名を使用できます。
|
宛先パス・モード | いいえ | いいえ | パスの作成 | これは、「エンベロープの宛先」プロパティーの動作を決定します。 以下のプロパティーを設定します。
|
「操作」ラベルへ経路指定 | いいえ | いいえ | 選択されていない | このプロパティーは、ノードがメッセージを SOAP 操作 (メッセージ内で指定されている) へ経路指定する必要があるかどうかを決定します。 このチェック・ボックスを選択すると、メッセージは、SOAP 操作と一致する Label ノードへ経路指定されます。 一致する Label ノードが存在しない場合、例外がスローされます。 SOAP 本体の最初の子エレメントの名前が RouteToLabel 名の判別に使用されます。 WSDL タイプが「RPC リテラル」および「ラップされた文書リテラル」の場合、これが「操作」名です。 SOAP ツリーの場合、SOAP.body の最初の子が操作名を提供します。 このチェック・ボックスのチェックを外した場合、ノードはメッセージを Out ターミナルへ送信します。 |
ラベル接頭部 | いいえ | いいえ | ノードがルーティングに使用するラベルの接頭部にする値。 接頭部を入力すると、サブフロー間での名前のスペーシングが可能になります。 |
プロパティー | M | C | デフォルト | 説明 |
---|---|---|---|---|
イベント | いいえ | いいえ | なし | ノードに対して定義したイベントが、このタブに表示されます。 デフォルトでは、メッセージ・フローのどのノードに対してもモニター・イベントは定義されません。 ノードのモニター・イベントを作成、変更、または削除するには、「追加」、「編集」、および「削除」を使用します。詳しくは、モニター・プロパティーを使用したモニター・イベント・ソースの構成を参照してください。 「使用可能」チェック・ボックスを選択またはクリアすることによって、ここに表示されているイベントを使用可能および使用不可に設定できます。 |
<?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>