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'。上面提到的註釋也是一樣的。 –