在Camel DSL中使用Exchange属性“to”

时间:2013-04-25 19:02:47

标签: java apache-camel

我想在Camel Exchange上设置属性,然后在保存文件时使用此属性。在我的骆驼中,我有以下内容:

.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());
    }

对可能出现的问题或如何实现这一目标的任何想法?

2 个答案:

答案 0 :(得分:2)

Camel中的“to”不会在运行时解释。

如果要动态构造URI,则应使用recipientList。 见http://camel.apache.org/how-do-i-use-dynamic-uri-in-to.html

答案 1 :(得分:1)

<强>已更新 上面接受的新答案,而不是之前的答案:


答案是[是]:

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

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