Как установить unmarshalled объект в свойство exchange в Camel

Я новичок в Верблюд, и я застрял в точке, которая кажется простой. У меня есть требование удалить 2 xml, которые находятся в моем обмене, а затем передать соответствующие POJO процессору. Я думаю, что если бы я смог удалить один xml, установить его в обмен на свойство и повторить то же самое для другого xml. Наконец, в процессоре я получу свойства и смогу выполнить необходимую логику в процессоре. Я могу успешно разобрать xml и получить последний POJO в exchange.in.body. Но может ли кто-нибудь сказать мне, как правильно установить результат неупорядоченного объекта в свойстве exchange? Я попробовал ниже, но это не работает:

    <setProperty propertyName="foo">
        <unmarshall ref="modelref" id="model_id"" />
    </setProperty>

здесь modelref - ссылка на bean-компонент класса org.apache.camel.model.dataformat.JAXBDataFormat из верблюда.

Кто-нибудь может дать мне несколько советов, чтобы это исправить?

1 ответ

Решение

Unmarshal не является допустимым дочерним элементом элемента setProperty. При условии, что вы уже выполнили какое-то разделение и теперь хотите демонтировать один из ваших XML-файлов и установить в качестве заголовка, вы сделаете что-то вроде этого:

<unmarshal ref="modelref" id="model_id" />
<setProperty propertyName="foo">
    <simple>${body}</simple>
</setProperty>
Другие вопросы по тегам