在之前的Spring集成应用程序中,我能够订阅到应用程序errorChannel
,我发送的失败邮件将在我的(预定义的)中结束处理程序。
但是,现在我尝试在更大的应用程序中实现相同的模式,该模式具有预先存在的入站设置,并且我无法再接收errorChannel
对我来说最令人震惊的是:
<int:publish-subscribe-channel id="errorChannel" task-executor="errorChannelExecutor"/>
当我开始使用此应用程序时,我不再看到以下令人放心的消息:
No bean named 'errorChannel' has been explicitly defined. Therefore, a default PublishSubscribeChannel will be created.
Adding {logging-channel-adapter:o.s.i.errorLogger} as a subscriber to the 'errorChannel' channel
Channel'o.s.c.s.C.errorChannel' has 2 subscriber(s).
int:publish-subscribe-channel
是否覆盖
我对应用程序errorChannel?答案 0 :(得分:1)
使用异步任务执行程序时,执行程序捕获的异常默认发送到名为errorChannel
的通道。
如果您定义了这样的通道,它将覆盖默认设置,否则该框架将创建默认设置(订阅它的日志记录适配器未订阅;如果您定义自己的通道,则必须这样做)。
对于消息驱动的入站通道适配器/网关(例如http,amqp等),如果没有下游异步执行程序,如果需要例外,则必须显式设置error-channel
属性去那里。