使用XML在Apache Camel中设置属性

问题描述 投票:0回答:1

我是新来的骆驼。在下面需要帮助。

我有2条路线。从路由A,我仅使用方法调用将1个属性发送到另一条路由。像

        <camel:route id="processMessageRoute">
        <camel:from uri="direct:processMessageRoute" /> 

        <camel:setProperty propertyName="MessageMap">
            <camel:method bean="ServiceBean" method="initMessageMap" />
        </camel:setProperty>

        <camel:setProperty propertyName="MessageBelongerMap">
            <camel:method bean="ServiceBean" method="initMessageBelongerMap" />
        </camel:setProperty>

    <camel:to uri="bean:ServiceBean?method=saveMessageData(${property.MessageBelongerMap})" />

在ServiceBean类内部,我有

public boolean saveMessageData(Map<String, Object> MessageBelongerMap) {

    producerTemplate.requestBody("direct:processMessage", MessageBelongerMap);

    return true;

现在,我的问题是我需要同时传递MessageMap和MessageBelongerMap这两个属性,但是在这里看不到任何选项。需要帮助吗?

java apache-camel blueprint-osgi
1个回答
0
投票

只需在您的bean方法中添加第二个参数

public boolean saveMessageData(Map<String, Object> MessageBelongerMap,
                               Map<String, Object> MessageMap) {

然后绑定到骆驼的第二个参数

<camel:to uri="bean:ServiceBean?method=saveMessageData(${property.MessageBelongerMap}, ${property.MessageMap})" />
© www.soinside.com 2019 - 2024. All rights reserved.