Обработка исключений в основанной на xml весенней интеграции - PullRequest
0 голосов
/ 20 сентября 2018

Как опубликовать исключение в канале ошибок, когда мы сталкиваемся с каким-либо исключением на любом из маршрутов.Мы не хотим отлавливать исключения вручную.Должен ли он автоматически направляться на канал ошибок?

1 Ответ

0 голосов
/ 20 сентября 2018

Нет, он не может автоматически перейти на error-channel.Это не то, как работает простая Java.Таким образом, если вы вызываете некоторый код Java, вы ожидаете оттуда исключения и определенно используете конструкцию try...catch.

error-channel имеет смысл только в процессах, не запущенных конечными пользователями, в некоторых активных процессах, таких как исполнители задач и планировщики.Для этого мы действительно предоставляем хук error-channel, чтобы не допустить исчезновения ошибки в нисходящем направлении.

Еще один способ сделать а-ля try...catch, но отправка на error-channel, может быть выполнена через шлюз обмена сообщениями: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints-chapter.html#gateway-error-handling. Таким образом, инфраструктура переносит весь поток на try...catch и отправляет ErrorMessage в сконфигурированную errorChannel.

Также для каждой услуги мы предоставляем ExpressionEvaluatingRequestHandlerAdvice со своей собственной областью failureChannel: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints-chapter.html#expression-advice

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