Настройка свойства в Apache Camel в XML

Я новичок в Apache Camel. Нужна помощь в нижеследующем.

У меня есть 2 маршрута. С маршрута А я отправляю только 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, но я не вижу здесь никаких вариантов. Нужна помощь?


person sss1992    schedule 25.09.2019    source источник


Ответы (1)


Просто добавьте второй параметр в свой метод bean

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

А затем привязать ко второму параметру от Camel

<camel:to uri="bean:ServiceBean?method=saveMessageData(${property.MessageBelongerMap}, ${property.MessageMap})" />
person Claus Ibsen    schedule 26.09.2019
comment
Извините, мне удалось добраться сюда, но я не понимаю, как передать 2 свойства из bean-компонента в другой маршрут. В productTemplate.requestBody(direct:processMessage, MessageBelongerMap); Я могу передать только один объект в качестве аргумента другому маршруту. - person sss1992; 29.09.2019
comment
Есть requestBodyAndMap, где карта — это заголовки. Если вам нужны свойства обмена, вам нужно использовать запрос, который работает напрямую с экземплярами Exchange. - person Claus Ibsen; 29.09.2019