您好我想使用apache Camel计算动态输出路由。我在文件夹位置收到一堆文件,根据其内容我想将文件移动到动态输出文件夹。将根据文件的输入内容构造ouput文件夹的名称。我如何实现它。
以下代码读取文件,处理它们,但我不知道如何根据文件内容设置$ {foldername}的值
from("file:D:\\camel\\input\\one?recursive=true&delete=true")
.process(new LogProcessor())
.to("file:D:\\camel\\output\\${foldername}")
请协助
答案 0 :(得分:2)
您可以创建一个自定义处理器来构造foldername并插入标题。
$('button').click(function() {
var value = this.value;
});
然后在您的路线中,您可以访问新创建的foldername-header:
public class DirectoryNameProcessor implements Processor {
@Override
public void process(Exchange exchange) {
Message in = exchange.getIn();
// Get the contents of the processed file
String body = in.getBody(String.class);
//Get the original file name
String fileName = in.getHeader("CamelFileName", String.class);
// Perform your logic
in.setHeader("foldername");
}
}
答案 1 :(得分:0)
简短的回答是,您可以使用动态到端点toD
http://camel.apache.org/message-endpoint.html#MessageEndpoint-DynamicTo
看起来像是:
from("file:D:\\camel\\input\\one?recursive=true&delete=true")
.process(new LogProcessor())
.toD("file:D:\\camel\\output\\${foldername}")