【发布时间】:2017-05-04 19:04:48
【问题描述】:
我已经看过很多关于这个主题的帖子,但似乎无法找到解决我的具体问题的方法,我认为这是一个非常典型的问题,即:如何在发生错误时继续处理消息(抛出异常)使用拆分器/聚合器。
我遇到的最好的解释是here。但是没有解释过滤器/变压器的确切工作方式/方式。最后,作者发布了“那行得通!”但没有发布更新的 SI.config.xml。
据我了解,这个想法是使用“错误网关”,它位于原始调用网关的下游和拆分器之后。该网关的工作是如果抛出异常,则对其进行处理,但要确保(通过转换器或过滤器)所有消息都进入聚合器。
我非常简化的 SI.config.xml 或多或少是这样的:
<int:gateway id="myGateway" ... /> // incoming gateway
<int:chain ... input-channel="in" output-channel="out">
<int:splitter ... />
<int:service-activator />
<int:aggregator />
</int:chain>
所以我的问题是,这个其他网关到底应该放在哪里?以及如何配置过滤器/转换器(根据我收集的信息)将抓取启动异常的消息并将其放回正确的通道(在记录它或其他任何内容之后),以便所有消息都进入聚合器。
我查看了 SO 上的 SI 样本和 2 本书(Acton 中的 SI 和 Pro SI),但找不到这样的示例。
【问题讨论】:
标签: error-handling spring-integration gateway