Верблюжий маршрут с промежуточной обработкой
Мне нужно написать маршрут Camel, который бы отправлял файл в веб-сервис. Перед отправкой файла в конечную точку я должен запросить в базе данных некоторую информацию и отправить файл в конечную точку вместе с дополнительной информацией. Мне также пришлось бы переместить файл в другой каталог после завершения всего маршрута. Мне удалось создать отдельные части маршрута самостоятельно. Я хотел знать, как я могу сделать это по одному маршруту.
1 ответ
Это ваше дизайнерское решение, как это сделать. Вы можете иметь свои отдельные части в качестве суб-маршрутов (это мой предпочтительный способ).
Это делает маршрут более функциональным и, по крайней мере, более читабельным. Затем вы можете передать свое сообщение (файл) им один за другим или параллельно, используя multicast
составная часть.
в XML DSL это будет выглядеть так:
<route id="main-route">
<from uri="..." />
<!-- DB processing -->
<to uri="direct:db-route-endpoint"/>
<multicast parallelProcessing="false">
<!-- No parallel processing: file will be stored after Web Service call completed
or for parallel parallelProcessing="true" -->"
<to uri="...web service endpoint... "/>
<to uri="direct:store-file-endpoint"/>
</multicast>
</route>
<route id="db-route">
<from uri="direct:db-route-endpoint" />
... DB processing ...
</route>
<route id="store-file-route">
<from uri="direct:store-file-endpoint" />
... save file to another directory ...
</route>