Заменить тело транзакции содержимым XML-файла

#xml #apache-camel #jbossfuse

#xml #apache-camel #jbossfuse

Вопрос:

В маршруте JBoss fuse мне нужно заменить тело транзакции содержимым XML-файла, который у меня есть в моем проекте fuse.

Я попробовал следующий код:

 <log message="Before"/>
<to uri="language:constant:gr/xxx/yyy/fuse/zzz/xslt/common/mapping.xml"/>
<log message="After"/>
<log message="${body}" />
  

И я получаю следующие журналы от fuse

 Before
Endpoint[language://constant:gr/xxx/yyy/fuse/zzz/xslt/common/mapping.xml]
Evaluated expression as: gr/xxx/yyy/fuse/zzz/xslt/common/mapping.xml
After
gr/xxx/yyy/fuse/zzz/xslt/common/mapping.xml
  

Есть идеи, что я делаю не так? Есть вероятность, что язык не поддерживается для моей версии Apache Camel, но я не могу быть уверен, что это за версия. Есть ли другой способ сделать это, например, для Apache Camel старше 2.2?

Ответ №1:

попробуйте добавить resource:file или resource:classpath для чтения файла. В противном случае constant только установит вам строку в тело.

см. https://camel.apache.org/components/latest/languages/constant-language.html для получения дополнительной информации.