Я буду использовать компонент PostgreSQL Debezium в качестве примера здесь, но эти вопросы относится к любому компоненту верблюда. Я знаю, как обрабатывать ошибки, связанные с сообщением, после того, как маршрут был создан, но как я могу завоевать исключения из компонента производителя, которые происходят во время процесса инициализации маршрута? Например: < /p>
from("debezium-postgres:dbz-test-1?databaseDbname=foo... full uri omitted")
.log("Event received from Debezium : ${body}");
< /code>
Если база данных "foo" не существует, разъем Debezium вызовет исключение, но маршрут все равно будет запущен. Я хочу поймать это исключение, когда оно происходит, и остановить маршрут. Я пытался использовать Onexception с BridgeerrorHandler в конечной точке Debezium, но, как и ожидалось, это не работает, потому что исключение не связано с обменом. Я также пытался поймать его с помощью политики маршрута, но это тоже не работает. Я попробовал: < /p>
public class DebeziumStartupExceptionRoutePolicy extends RoutePolicySupport {
private final CamelContext camelContext;
public DebeziumStartupExceptionRoutePolicy(CamelContext camelContext) {
this.camelContext = camelContext;
}
@Override
public void onInit(Route route) {
this.setExceptionHandler(new DebeziumStartupErrorExceptionHandler());
super.onInit(route);
}
@Override
public void onStart(Route route) {
super.onStart(route);
}
private void handleException(Route route, Exception e) {
log.error("Exception caught during route startup: {}", e.getMessage(), e);
}
}
< /code>
Тем не менее, debeziumstartuperrorexceptionHandler не вызывается, когда исключение по ошибке Postgres будет выбрано. Кроме того, когда я установил точку останова в методе OnStart (), я могу получить объект маршрута после того, как произошло исключение, но я не вижу указания исключения на объекте. В частности, поле RouteError является нулевым, и я не вижу никаких других очевидных признаков. Как правильный способ справиться с этим сценарием?
Спасибо!
Подробнее здесь: https://stackoverflow.com/questions/794 ... -exception
Как поймать исключение запуска компонента компонента Apache Camel Component ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Apache Camel: как лучше всего повторно использовать маршруты Camel из других маршрутов?
Anonymous » » в форуме JAVA - 0 Ответы
- 103 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Apache Camel - Получение ошибки в среде выполнения при запуске команды MVN Camel Run
Anonymous » » в форуме JAVA - 0 Ответы
- 89 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Apache Camel - Получение ошибки в среде выполнения при запуске команды MVN Camel Run
Anonymous » » в форуме JAVA - 0 Ответы
- 69 Просмотры
-
Последнее сообщение Anonymous
-