Мне нужно написать маршрут 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>
person
Vadim
schedule
28.03.2017