我讀過,如果在流中拋出異常,框架首先要做的是檢查錯誤通道屬性的消息頭。情況總是如此嗎?在彈簧集成中的錯誤處理/傳播
在我的特殊情況下,我將一個自定義錯誤通道分配給消息頭,但消息似乎傳播到最近的錯誤處理程序/錯誤通道。
<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