Apache Camel. Базовая конфигурация для всех маршрутов - PullRequest
0 голосов
/ 16 октября 2019

У меня есть много маршрутов, для которых нужно добавить общую обработку ошибок и выполнить некоторые действия, такие как ведение журнала, добавление информации (заголовки) и т. Д. Я делаю это во время выполнения, теперь собираю все маршруты из контекста верблюда иудалите их, и вместо них добавляются новые RouteBuilders со всеми необходимыми действиями. Но для запуска требуется очень много времени, потому что вам нужно остановить, удалить, добавить и запустить новые маршруты. Есть ли способ решить эту проблему более эффективным способом?

Один из вариантов для меня - преобразование XML-файлов, но, возможно, есть опция через Java dsl . может верблюд 3.0 может решить эту проблему?

1 Ответ

1 голос
/ 16 октября 2019

Вы уже смотрели на функцию Camel intersept ?
Используя ее, вы можете, например, добавить собственный заголовок к каждому Exchange на ваших маршрутах

<interceptFrom uri="*">
    <setHeader headerName="specific"><simple>42</simple></setHeader>
</interceptFrom>

Отвечая на остальныевашего вопроса, чтобы настроить общую обработку ошибок и ведение журнала, у вас есть возможность использовать блоки onException и onCompletion, которые будут применяться для каждого маршрута в предоставленном CamelContext

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...