Camel - 传递给方法的属性参数在选择/何时不起作用

时间:2016-09-09 05:23:44

标签: apache-camel

我使用Spring(v4.3.2.RELEASE)使用Camel(v2.17.3)并且将属性参数传递给方法时遇到了麻烦。

我试图做出选择/何时,但是它传递了普通字符串而不是属性{{elmu.inMask}}的值:

    <choice>
        <when>
            <method ref="eleoHelper" method="checkInMask(${exchange}, ${file:name}, {{elmu.inMask}})" />
            <log message="${body}" />
        </when>
    </choice>

最后,我想出当我在setHeader中使用相同的内容(以及标题的值作为选择/何时的变通方法)时,它运行良好。

    <setHeader headerName="toCollect">
        <method ref="eleoHelper" method="checkInMask(${exchange}, ${file:name}, {{elmu.inMask}})" />
    </setHeader>

但是我有几个属性,我不喜欢这种解决方法。

属性bean定义:

<bean id="properties" class="org.apache.camel.component.properties.PropertiesComponent">
    <property name="location" value="file:ELEOSFTP.properties" />
    <property name="encoding" value="UTF-8" />
</bean>

冷,你告诉我我的代码有什么问题,如何在选择/何时使用属性值?

2 个答案:

答案 0 :(得分:0)

这些是bean属性。我猜你需要创建setter / getters和一个类变量来映射属性。

<cm:properties>中定义的标准属性可以按照您的方式引用。

答案 1 :(得分:0)

尝试:

method=checkInMask($exchangeProperty.<property name>)