Я читал, что если в потоке выбрано исключение, первое, что сделает инфраструктура, это заголовок сообщения об ошибке для свойства error-channel. Это всегда так?Обработка ошибок/распространение в интеграции с весной
В моем конкретном случае я назначаю собственный канал ошибок для заголовка сообщения, и, тем не менее, сообщение, похоже, распространяется по потоку до ближайшего обработчика ошибок/канала ошибок.
<int:chain id="buildAggregatedResponseChain" input-channel="aggregatedResultChannel"
output-channel="sendAggregatedChannel">
<int:header-enricher>
<int:error-channel ref="myErrorChannel"/>
</int:header-enricher>
<int:service-activator ref="service" method="doSomething"/>
</int:chain>
я явно сгенерирует исключение внутри DoSomething но исключение никогда не заканчивается в myErrorChannel. Вместо этого он «распространяется» на ближайший ErrorHandler вверх по потоку или на канал ошибки, указанный для потока для int-mail: imap-idle-channel-adapter (пробовал несколько разных потоков). Что я пропущу? Может быть, кто-то может выделить основной принцип обработки ошибок/распространения ошибок (например, когда речь идет о нескольких транзакциях и т. Д.)? Существует некоторая информация, но она довольно разрозненна и не систематическая.
«Если вы хотите вставить различную обработку ошибок в середине потока, тогда вы можете вставить шлюз обмена сообщениями» - это то, что я хотел бы спросить о следующем :) – yuranos87