このタスクについて
cMessageRouterコンポーネントは、When接続で設定された条件に基づいて、あるエンドポイントから別のエンドポイントにメッセージをフィルタリングおよびルーティングするため、プロパティがありません。
手順
-
Senderという名前のcFileコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[Path] (パス)フィールドでメッセージソースへのファイルパスを指定します。
[Encoding] (エンコーディング)リストから、メッセージファイルのエンコーディングタイプを選択します。その他のパラメーターはそのままにしておきます。
-
デザインワークスペースで、作成したWhen接続をクリックし、[Component] (コンポーネント)ビューをクリックして、メッセージがルーティングされる基準となるフィルターを定義します。
-
使用するメッセージの形式がXMLであるため、[Type] (タイプ)リストでxpathを選択します。
[Condition] (条件)フィールドに
"/person[city='Paris']"
と入力して、cityノードの値がParisであるメッセージのみを取得します。 -
directParisという名前のcMessagingEndpointコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
- URIフィールドにエンドポイントURI (例: "direct:Paris")を入力して、フィルタリングされたメッセージを受信します。
- 上記のステップを繰り返して、directOthersという名前のcMessagingEndpointコンポーネントのエンドポイントURIを"direct:Others"に設定します。directParisRouteおよびdirectOthersRouteという名前のcMessagingEndpointコンポーネントのエンドポイントURIを、それぞれ"direct:Paris"および"direct:Others"に設定します。
-
Receiver_Parisという名前のcFileコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開き、フィルター条件を満たすメッセージのパスを[Path] (パス)フィールドに指定します。
このステップを繰り返し、送信元からのその他すべてのメッセージのパスをReceiver_Othersという名前のcFileコンポーネントに定義します。
-
Monitor_Parisという名前のcLogコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[Level] (レベル)リストでINFOを選択します。[Specify output log message] (出力ログメッセージを指定)オプションを選択し、[Message] (メッセージ)フィールドに次のコードを入力して、指定のディレクトリーに送信するメッセージのファイル名を表示します。
Message sent to folder Paris_only: ${header.CamelFileNameOnly}
このステップを繰り返して、Monitor_Othersという名前のcLogコンポーネントのメッセージをカスタマイズし、指定のディレクトリーに送信するメッセージのファイル名を表示します。 - [Ctrl] + [S]を押してジョブを保存します。