JavaComputeTransform サンプルの実行

このサンプルをインポートして部分的にセットアップし、適切なセットアップ手順を実行した後、 以下のサンプルの実行のセクションの指示に従ってサンプルを実行できます。

また、このトピックには、入力テスト・メッセージの例と、それに対応する出力メッセージも示されているため、サンプルが 機能したことを確認できます。

入力テスト・メッセージ

このサンプルの実行に使用されるすべてのテスト・メッセージは、以下のフォーマットに基づいています。

<SaleEnvelope>
<Header>
<SaleListCount>1</SaleListCount>
</Header>
<SaleList>
<Invoice>
<Initial>K</Initial>
<Initial>A</Initial>
<Surname>Braithwaite</Surname>
<Item>
<Code>00</Code>
<Code>01</Code>
<Code>02</Code>
<Description>Twister</Description>
<Category>Games</Category>
<Price>00.30</Price>
<Quantity>01</Quantity>
</Item>
<Item>
<Code>02</Code>
<Code>03</Code>
<Code>01</Code>
<Description>The Times Newspaper</Description>
<Category>Books and Media</Category>
<Price>00.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>00.50</Balance>
<Currency>Sterling</Currency>
</Invoice>
<Invoice>
<Initial>T</Initial>
<Initial>J</Initial>
<Surname>Dunnwin</Surname>
<Item>
<Code>04</Code>
<Code>05</Code>
<Code>01</Code>
<Description>The Origin of Species</Description>
<Category>Books and Media</Category>
<Price>22.34</Price>
<Quantity>02</Quantity>
</Item>
<Item>
<Code>06</Code>
<Code>07</Code>
<Code>01</Code>
<Description>Microscope</Description>
<Category>Miscellaneous</Category>
<Price>36.20</Price>
<Quantity>01</Quantity>
</Item>
<Balance>81.84</Balance>
<Currency>Euros</Currency>
</Invoice>
</SaleList>
<Trailer>
<CompletionTime>12.00.00</CompletionTime>
</Trailer>
</SaleEnvelope>

サンプルの実行

このサンプルには、2 つの JavaCompute ノードが含まれています。 1 つは XPath 式を使用するもので (JavaComputeTransformXPath)、もう 1 つは Java プラグイン・ノード API を使用するものです (JavaComputeTransformNoXPath)。 これは、同じ結果になる 2 種類の方法を比較することを意図したものです。

以下の説明では、JavaComputeTransformXPath ノードを取り上げています。 JavaComputeTransformNoXPath ノードの場合は、該当する箇所で XPath を NoXPath に置き換える必要がありますが、それ以外は 全く同じように指示に従ってください。

このサンプルは、メッセージ・フロー JavaComputeTransformXPathFlow を使用します。 このメッセージ・フローには JAVACOMPUTE.TRANSFORMXPATH.IN という入力キューが 1 つあり、メッセージを変換して 2 つの 出力キュー (JAVACOMPUTE.TRANSFORMXPATH.OUT および JAVACOMPUTE.TRANSFORMXPATH.FAILURE) のどちらかに経路指定できます。

サンプルを実行するには、次のようにします。

  1. IBM WebSphere Message Broker Toolkit で、「ブローカー・アプリケーション開発」パースペクティブに切り替えます。
  2. JavaComputeTransformXPathMessage というテスト・メッセージ・エンキュー・ファイルを開きます。
  3. 「キューへ書き込み」をクリックします。 メッセージが JAVACOMPUTE.TRANSFORMXPATH.IN キューに送られます。 メッセージ・フローは、JavaComputeTransformXPath ノードを使用してメッセージを 変換し、JAVACOMPUTE.TRANSFORMXPATH.OUT キューに経路指定します。
  4. メッセージが正しいキューに到達したかどうかを確認するには、WebSphere MQ Explorer を使用します。
    1. WebSphere MQ Explorer を開始します。
    2. キュー・マネージャー WBRK6_DEFAULT_QUEUE_MANAGER の下のフォルダーを 展開し、「キュー」を選択します。
    3. WebSphere MQ Explorer を最新表示する場合は、実際のキュー名では なく「キュー」フォルダーを選択していることを確認してください。 キュー名を選択している場合、一部のキューしか最新表示されません。
  5. キュー画面を最新表示して、それぞれのキュー上にある現在のメッセージ数を表示します。 メッセージが JAVACOMPUTE.TRANSFORMXPATH.OUT キューに出力されるはずです。
  6. この出力メッセージを表示するには、IBM WebSphere Message Broker Toolkit に戻り、ツールバーの「メッセージをキューから取得」をクリックします。
  7. キュー・マネージャー名として WBRK6_DEFAULT_QUEUE_MANAGER、キュー名として JAVACOMPUTE.TRANSFORMXPATH.OUT を入力します。
  8. 「キューから読み取り」をクリックして、出力メッセージの内容を表示します。
  9. これを予期される出力メッセージと比較してください。

上記のすべてのステップが機能したなら、サンプルは完了になります。 メッセージ・フロー JavaComputeTransformXPathFlow の Java コードを参照し、メッセージの変換が行われた方法を調べてください。

予期される出力メッセージ (JavaComputeTransformNoXPath)

JavaComputeTransformNoXPathFlow メッセージ・フローを使用する場合、出力メッセージは、次の例のような形式になります。

<Parent>
<Statement Type="Monthly">
<Customer>
<Initials>KA</Initials>
<Name>Braithwaite</Name>
<Balance>00.50</Balance>
</Customer>
<Purchases>
<Article>
<Desc>Twister</Desc>
<Cost>0.48</Cost>
<Qty>01</Qty>
</Article>
<Article>
<Desc>The Times Newspaper</Desc>
<Cost>0.32</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>0.8</Amount>
</Statement>
<Statement Type="Monthly">
<Customer>
<Initials>TJ</Initials>
<Name>Dunnwin</Name>
<Balance>81.84</Balance>
</Customer>
<Purchases>
<Article>
<Desc>The Origin of Species</Desc>
<Cost>35.744</Cost>
<Qty>02</Qty>
</Article>
<Article>
<Desc>Microscope</Desc>
<Cost>57.92</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>129.40800000000002</Amount>
</Statement>
</SaleList>
</Parent>

予期される出力メッセージ (JavaComputeTransformXPath)

JavaComputeTransformXPathFlow メッセージ・フローを使用する場合、出力メッセージは、次の例のような形式になります。

<SaleEnvelope>
<SaleList>
<Statement Type="Monthly" Style="Full">
<Customer>
<Initials>KA</Initials>
<Name>Braithwaite</Name>
<Balance>00.50</Balance>
</Customer>
<Purchases>
<Article>
<Desc>Twister</Desc>
<Cost>0.48</Cost>
<Qty>01</Qty>
</Article>
<Article>
<Desc>The Times Newspaper</Desc>
<Cost>0.32</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>0.8</Amount>
</Statement>
<Statement Type="Monthly" Style="Full">
<Customer>
<Initials>TJ</Initials>
<Name>Dunnwin</Name>
<Balance>81.84</Balance>
</Customer>
<Purchases>
<Article>
<Desc>The Origin of Species</Desc>
<Cost>35.744</Cost>
<Qty>02</Qty>
</Article>
<Article>
<Desc>Microscope</Desc>
<Cost>57.92</Cost>
<Qty>01</Qty>
</Article>
</Purchases>
<Amount>129.408</Amount>
</Statement>
</SaleList>
</SaleEnvelope>

JavaComputeTransformXPath の出力メッセージと JavaComputeTransformNoXPath の出力メッセージの丸めの間には多少の違いがあり、 そのため上記の 0.32 の代わりに 0.32000000000000006 と出力されることが予想されます。

メインページのアイコン『JavaCompute Node サンプルの実行』に戻る