6
私はCamelを使用して潜在的に大きなファイルを処理しようとしており、Camel Message
の本体に「フィッティング」することを心配しています。メッセージの本文としてファイルの名前(パス)を渡してから、プロセッサでディスクから読み込む方法がありますか?Camel: "ファイル"コンポーネントですが、本体としてファイル名を渡すだけです
私はCamelを使用して潜在的に大きなファイルを処理しようとしており、Camel Message
の本体に「フィッティング」することを心配しています。メッセージの本文としてファイルの名前(パス)を渡してから、プロセッサでディスクから読み込む方法がありますか?Camel: "ファイル"コンポーネントですが、本体としてファイル名を渡すだけです
java.io.Fileインスタンスを渡すことができます。これは本質的にCamelファイルコンポーネント自体です(ただし、FTPコンポーネントとコードを共有するため、WrappedFile内に配置されています)。
もちろんまた、単に文字列としてファイルの名前を格納し、その後、プロセッサアクセスからファイルを、どちらか
String name = exchange.getIn().getBody(String.class);
File file = new File(name);
...
FileInputStream fis = new FileInputStream(file);
// read the file from the stream, etc.
で私が正しくあなたを理解していれば、私は見てみましょうことができます。 Camelは、ファイルを消費するときにファイルの内容をメッセージにロードせず、 'File'(' WrappedFile'オブジェクトの中にラップされたもの)を渡します**?私はbodyを 'byte []'( '' exchange.getIn()。getBody(byte []。class) ''と呼ぶとき、_then_はボディをロードしますか? – Tonio
はい、正しいです。ファイルの内容は必要に応じてロードされます。 –