You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Integration处理流程时打印指定INFO日志的具体原因是什么

日志输出的根本原因

  1. 你配置的xxx-consolidador-channel-segrega-renda-variavel是Spring Integration默认的单播通道(Point-to-Point Channel),该通道绑定了两个订阅者:
    • 第一个是id为recursaoRendaVariavel的头值路由器,匹配recursao头为true的消息
    • 第二个是id为processaRendaVariavel的头值路由器,匹配processa头为true的消息
  2. 单播通道的UnicastingDispatcher分发器默认会按顺序尝试将消息投递给订阅者,只要任意一个订阅者成功处理就完成投递。你日志里对应的消息头中不存在recursao字段,且recursaoRendaVariavel路由器配置了resolution-required="false"、未设置默认输出通道,所以该路由器处理时无法解析出目标转发通道,抛出了对应的异常。
  3. 分发器捕获到该异常后,自动执行故障转移逻辑,将消息投递给下一个订阅者processaRendaVariavel,而消息头中存在processa=true刚好匹配该路由器规则,消息被正常转发处理,所以你整个流程的功能运行不受影响,只会打印该INFO级别的异常日志。

可选的解决方案(消除日志)

  • 方案1:给recursaoRendaVariavel路由器配置default-output-channel指向Spring内置的nullChannel,没有匹配规则的消息会直接被丢弃,不会抛出异常
  • 方案2:将xxx-consolidador-channel-segrega-renda-variavel改为发布订阅通道,两个路由器独立接收消息互不影响
  • 方案3:调整SplitterRecursaoRendaVariavel的逻辑,保证输出的消息要么带recursao=true头,要么不带processa头,避免两个路由器同时被触发的场景

内容的提问来源于stack exchange,提问作者Gabriel Gomes Crispim

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 03:54:06