Внедрение или наследование Router Builder для глобального исключения onException в apache camel

У меня есть onException, настроенный в одном классе DefaultRouteBuilder. Я хочу, чтобы этот onException использовался во всех других маршрутах в моем контексте. Я сомневаюсь, следует ли мне наследовать DefaultRouteBuilder во всех других маршрутах и ​​вызывать super.configure() в методе configure() или внедрять DefaultRouteBuilder defaultRoute во все остальные классы RouteBuilder и вызывать defaultRoute.configure() в методе configure(). Какой должен подойти?


person Ayan    schedule 27.02.2014    source источник
comment
Я бы выбрал super.configure() - поскольку вам больше не нужен RouteBuilder после настройки маршрута, использование наследования было бы хорошо.   -  person vikingsteve    schedule 27.02.2014
comment
@vikingsteve Я уверен, что они оба будут работать нормально. Я не вижу причин, по которым я бы не выбрал Injecting defaultRouteBuilder во всех других маршрутах.   -  person Ayan    schedule 27.02.2014


Ответы (1)


Глобальный DSL onException работает только внутри одного и того же RouteBuilder, так как camelcontext обрабатывает экземпляр построителя маршрутов отдельно.

person Willem Jiang    schedule 04.03.2014
comment
Вы говорите, что внедрение defaultRouteBuilder вызовет проблемы, поскольку в этом RouteBuilder технически не определены маршруты. Вызов defaultRouteBuilder.configure() на самом деле не будет перехватывать onException для маршрутов в ActualRouteBuilder, куда я ввожу defaultRouteBuilder. Я прав ? - person Ayan; 04.03.2014
comment
Я бы посмотрел на реализацию onException, прежде чем задавать этот вопрос. Спасибо - person Ayan; 05.03.2014