Вы можете определить глобальное исключение для всех маршрутов, определенных внутри Routebuilder, из документации верблюда
Глобальная область действия для Java DSL для каждого экземпляра RouteBuilder, поэтому, если вы хотите совместно использовать несколько классов RouteBuilder, создайте базовый абстрактный класс RouteBuilder и поместите логику обработки ошибок в его метод configure. А затем расширьте этот класс и убедитесь, что класс super.configure (). Мы просто используем технику наследования Java.
Другими словами, класс BaseRouteBuilder будет:
public abstract BaseRouteBuilder extends RouteBuilder {
@Override
public void configure() {
onException(Throwable.class).log("Excpetion caught");
}
А потом ваши маршруты:
@AllArgsConstructor
public class MyCamelRoute extends BaseRouteBuilder {
/**
* {@inheritDoc}
*/
@Override
public void configure() throws Exception {
super.configure();
// Route Configuration here
}
}
Как указывалось, важно вызывать super.configure()
из дочернего класса, в противном случае предложение исключения не будет выполнено.