1
我有一个简单的Spring集成应用程序,可以将消息从入站RabbitMQ网关,通过处理程序链移动到MongoDB数据库。当我从一个直接频道切换到执行者频道时,我开始收到用户错误。在调试器中观察事物我看到,在设置了ExecutorChannel bean之后,onInit()方法被触发并将所有内容重置为默认值。我无法弄清楚为什么代码将被结构化来做到这一点?我查看了DirectChannel.onInit(),它只是修改了事情,如果以前没有设置值。有任何想法吗?我正在使用Spring Integration 4.1.2。为什么ExecutorChannel.onInit()重置调度程序?
// from
@Bean
DirectChannel uploadChannel(MessageHandlerChain uploadMessageHandlerChain) {
def bean = new DirectChannel()
bean.subscribe(uploadMessageHandlerChain)
bean
}
// to
@Bean
ExecutorChannel uploadChannel(MessageHandlerChain uploadMessageHandlerChain) {
def bean = new ExecutorChannel(Executors.newCachedThreadPool())
bean.subscribe(uploadMessageHandlerChain)
bean
}
org.springframework.integration.MessageDispatchingException: Dispatcher has no subscribers
尼古拉,即排序我需要的是什么。谢谢。 – user1836542
如果我的答案解决了你的问题,请接受我的答案并将其提升为 –
伙计们,为什么'MessageHandlerChain'' @ Bean'上的'@ ServiceActivator'不适合你?即使'订阅'的东西运作良好,你没有端点,你将无法'停止'在运行时听通道。 ''创建完全端点和'MessageHandler'。上面提到的注释也是一样的。 –