如何定义spring集成错误通道?

gywdnpxw  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(330)

在以前的spring集成应用程序中,我可以订阅该应用程序 errorChannel 而我的失败消息,发送出去绑定,将结束在我的(预定义)处理程序。
然而,现在我正试图在一个更大的应用程序中实现相同的模式,它有一个预先存在的in-bound设置,并且我不再能够在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?
有没有一种方法,我可以定义一个备用的错误通道,它只与外部连接有关?

9w11ddsr

9w11ddsr1#

使用异步任务执行器时,执行器捕获的异常将发送到名为 errorChannel 默认情况下。
如果您定义这样一个通道,它将覆盖默认值,否则该默认值将由框架创建(并且订阅给它的日志适配器未订阅;如果定义自己的频道,就必须这样做)。
对于消息驱动的入站通道适配器/网关(例如http、amqp等),如果没有下游异步执行器,则必须显式设置 error-channel 属性,如果您希望异常转到那里。

相关问题