Spring集成|服务激活器 - 错误通道,异常处理

时间:2014-12-09 20:14:57

标签: exception-handling spring-integration

我在弹簧集成应用程序中捕获异常时遇到问题。

我的应用程序中的操作流程。

  1. Http:接收请求的入站网关(定义到我的自定义错误通道的错误通道)
  2. 用于基本验证的Service Activator(从此处抛出的异常由GW上定义的错误通道处理)
  3. 分离器
  4. 聚合
  5. 我的错误通道不处理我的拆分器或聚合器上的异常。为什么呢?

    采取的步骤:

    我添加了一个链并包含一个标题扩充器,并在拆分器之前指定了一个错误通道。

    在此之后,我的拆分器上的任何异常都由标题扩充器中提到的错误通道处理。

    <chain input-channel="invitations">
            <header-enricher>
                <error-channel ref="failed-invitations" />
            </header-enricher>
            <int:splitter ref="payloadSplitter" />
        </chain>
    
    1. 但在我的聚合器上执行相同操作时,同样不起作用。为什么呢?
    2. 每当我的代码中出现异常时,它会重试并执行多次。为什么呢?
    3. 我有一个&#34; errorChannel&#34;定义哪些记录异常。它不起作用。

          
                                                                                        

1 个答案:

答案 0 :(得分:0)

我知道线程太旧了,但是我也遇到了类似的问题,发现我在header-enricher中声明了错误通道,但是没有提供'overwrite =“ true”'作为参数。在提供“ overwrite =“ true”“之后,它可以根据需要工作。我很惊讶为什么Spring集成默认情况下不提供overwrite = true。

让我们知道这是您在旧代码中执行的解决方案?这样每个人都可以找到针对这种情况的解决方案。