Как установить 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>