手順
-
Senderという名前のcFileコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[Path] (パス)フィールドで、ソースファイルを保持するフォルダーへのパスを入力するか参照します。
[Encoding] (エンコーディング)リストから、ソースファイルのエンコーディングタイプを選択します。[FileName] (ファイル名)フィールドにソースメッセージのファイル名を入力します。ソースフォルダーにファイルが1つしかない場合は、このステップを省略できます。
-
Receiverという名前のもう1つのcFileコンポーネントの[Basic settings] (基本設定)ビューで上記のステップ1と2を繰り返して、出力ファイルパスとエンコーディングタイプを定義します。[FileName] (ファイル名)フィールドは空白のままにします。
-
cSplitterコンポーネントをダブルクリックし、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
このユースケースでは、XMLファイルの各personノードでメッセージをサブメッセージに分割します。[Language] (言語)リストでXPathを選択し、[Expression] (式)フィールドに
"/people/person")
と入力します。 -
Set_file_nameという名前のcSetHeaderコンポーネントをダブルクリックして、[Component] (コンポーネント)タブで[Basic settings] (基本設定)ビューを開きます。
-
[+]をクリックして、[Headers] (ヘッダー)テーブルに行を追加します。
[Name] (名前)フィールドに、メッセージに付けるヘッダーの名前を入力します。ここでは、各受信メッセージのファイル名を定義するため、ヘッダー名として
"CamelFileName"
を入力します。[Language] (言語)フィールドでBeanを選択し、[Value] (値)フィールドに事前定義されたJava Beanの名前を入力します。このユースケースではbeans.setFileNames.class
です。 -
cProcessorコンポーネントをダブルクリックして、[Component] (コンポーネント)タブに[Basic settings] (基本設定)ビューを表示し、コンソールに希望する方法で情報が表示されるようにコードをカスタマイズします。
このユースケースでは、受信エンドポイントにルーティングされた各メッセージのファイル名を表示するため、次のようにコードをカスタマイズします。
System.out.println("File received: "+ exchange.getIn().getHeader("CamelFileName"));
- [Ctrl] + [S]を押してジョブを保存します。