第4章 ルートの実行
このチュートリアルでは、ルートを実行して、ルートがソースエンドポイントからシンクエンドポイントにメッセージを正しく転送することを確認するプロセスについて説明します。
ゴール
このチュートリアルでは、次のタスクを完了します。
- ルートをローカル Camel コンテキストとして実行します (まだテストを設定していないため、テストなしで)
- ルートを介してメッセージを送信します。
- シンクエンドポイントが受信したメッセージを調べて、ルートがテストメッセージを正しく処理したことを確認します
前提条件
このチュートリアルを開始するには、次の結果の ZooOrderApp プロジェクトが必要です。
- 2章環境の設定 チュートリアルを終了します。
次のいずれかになります。
3章ルートの定義 チュートリアルを終了します。
または
-
「リソースファイルについて」で説明されているように、プロジェクトの
blueprint.xml
ファイルを提供されるblueprintContexts/blueprint1.xml
ファイルに置き換える。
ルートを実行する
ルートを実行するには:
-
ZooOrderApp
プロジェクトを開きます。 Project Explorer で
ZooOrderApp/Camel Contexts/blueprint.xml
を選択します。blueprint.xml
を右クリックし、Run As → Local Camel Context (without tests) を選択します。注記代わりに Local Camel Context を選択すると、ツールは提供された JUnit テストに対してルーティングコンテキストを自動的に実行しようとします。JUnit テストが存在しないため、ツールはテストなしでルーティングコンテキストの実行に戻ります。9章JUnit を使用したルートのテストチュートリアルでは、ZooOrderApp プロジェクトをテストするための JUnit テストケースを作成します。
Console パネルが開き、プロジェクトの実行の進行状況を反映するログメッセージが表示されます。最初に、Maven はローカルの Maven リポジトリーを更新するために必要なリソースをダウンロードします。Maven のダウンロードプロセスには数分かかる場合があります。
出力の最後にメッセージ (以下と同様) が表示されるのを待ちます。これらのメッセージは、ルートが正常に実行されたことを示しています。
... [Blueprint Event Dispatcher: 1] BlueprintCamelContext INFO Route: _route1 started and consuming from:Endpoint[file://src/data?noop=true] [Blueprint Event Dispatcher: 1] BlueprintCamelContext INFO Total 1 routes, of which 1 are started. [Blueprint Event Dispatcher: 1]BlueprintCamelContext INFO Apache Camel 2.21.0.redhat-3 (CamelContext: ...) started in 0.163 seconds [Blueprint Event Dispatcher: 1] BlueprintCamelContext INFO Apache Camel 2.21.0.redhat-3 (CamelContext: ...) started in 0.918 seconds
- ルートをシャットダウンするには、Console ビューの上部にある をクリックします。
ルートを確認する
ルートが適切に実行されたことを確認するには、メッセージ XML ファイルがソースフォルダー (src/data
) からターゲットフォルダー (target/messages/received
) にコピーされたかどうかを確認します。
-
Project Explorer で
ZooOrderApp
を選択します。 - 右クリックして、Refresh を選択します。
Project Explorer で
target/messages/
フォルダーを見つけ、そのフォルダーを展開し、target/messages/received
フォルダーに 6 つのメッセージファイル (message1.xml
からmessage6.xml
) が含まれていることを確認します。message1.xml
をダブルクリックして、ルートエディターの Design タブでそれを開き、Source タブを選択して XML コードを表示します。<?xml version="1.0" encoding="UTF-8"?> <order> <customer> <name>Bronx Zoo</name> <city>Bronx NY</city> <country>USA</country> </customer> <orderline> <animal>wombat</animal> <quantity>12</quantity> </orderline> </order>
次のステップ
5章コンテンツベースのルーターの追加チュートリアルでは、メッセージのコンテンツを使用して宛先を決定するコンテンツベースのルーターを追加します。