如何在camel路由中使用java util类(或静态方法)来修改Exchange属性

时间:2014-11-06 12:15:26

标签: apache-camel

我想将CamelUtils类与方法setProperty

一起使用
public final class CamelUtils {
    public static void setProperty(Exchange exchange, String name, Object value) {
        exchange.setProperty(name, value);
    }
}

我想在骆驼路线中使用它,如

<route>
   <from uri="direct:hello">
   <to uri="CamelUtils.setProperty(exhange, strName, strValue)"/>
   ... use property anyhow
</route>

我怎么能让它发挥作用?


我找到了在XML DSL中设置属性的正确方法:

        <setProperty propertyName="propName"><simple>${body.someField}</simple></setProperty>

1 个答案:

答案 0 :(得分:2)

如果没有使用参数,则默认传递交换。 您可以为其他参数设置两个标题,然后使用

 <from uri="direct:hello">
    <setHeader headerName="name">
                    <constant>name</constant>
                </setHeader>
                <setHeader headerName="value">
                    <constant>value</constant>
                </setHeader>
 <to uri="bean:mypackage.CamelUtils?method=setProperty"/>

然后在方法

public static void setProperty(Exchange exchange, @Header("name") String name, @Header("value") Objectvalue) {
        exchange.setProperty(name, value);
    }