5

我想在 Camel Exchange 上设置一个属性,然后在保存文件时使用这个属性。在我的骆驼 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());
}

关于可能出了什么问题或如何实现这一目标的任何想法?

4

2 回答 2

3

更新 了上面接受的新答案,而不是以前的答案:


答案是[是]:

.to("file:/tmp?fileName=file-${property.uid}") + ".xml")

这个简单的表达式引入了交换属性。有关您可以提取的内容的完整列表,请参阅简单表达式语言参考

于 2013-04-25T20:50:46.030 回答
3

骆驼中的to不在运行时解释。

如果你想动态地构建你的 URI,你应该使用接收者列表。见https://camel.apache.org/manual/latest/faq/how-to-use-a-dynamic-uri-in-to.html

于 2014-02-20T15:37:28.810 回答