Map<String,String> map= new HashMap<>();
map.put("simpletext","Simple text");
map.put("errortext","Error text");
exchange.getIn().setBody(map);
基于交换对象中映射的键,我想将它们写入两个单独的文件位置。如何在apachecamel中实现这一点?
您可以使用拆分的EIP将每个映射条目发送到一个不同的文件。例如:
.split(simple("${in.body.entrySet}"))
.setHeader("theKey", simple("${body.getKey}"))
.setBody(simple("${body.getValue}"))
.process( e -> this.setTargetFileName(e) )
.to("file:/mydir")
.end()
private void setTargetFileName(Exchange exchange) {
String key = exchange.getMessage().getHeader("theKey", String.class);
if ( "simpletext".equals(key) ) {
exchange.getMessage().setHeader("CamelFileName", "targetA.txt");
} else {
exchange.getMessage().setHeader("CamelFileName", "targetB.txt");
}
}