我想在Camel Exchange上设置一个属性,然后在保存文件时使用此属性。在我的Camel DSL中,我有以下内容:
.process(processorToSetExhangeProperty) // sets the property <uid> on the exchange
.to("file:/tmp?fileName=file-" + property("uid") + ".xml")
文件正在保存为:
"file-property{uid}.xml" though
我的处理器如下:
@Override
public void process(Exchange exchange) throws Exception {
UUID uuid = UUID.randomUUID();
exchange.setProperty("uid", uuid.toString());
exchange.setOut(exchange.getIn());
}
有没有想法,可能出了什么问题,或者我如何实现这个目标?
to()
组件在路由构建期间被评估。 在您的情况下,它部分地起作用,因为uid可能只计算一次。 如果您在多条消息之后检查uid,则应该注意到它可能永远不会改变。 - рüффп