我遇到以下消息驱动程序通道适配器的问题
@Bean
public IntegrationFlow jmsInboundFlow() {
return IntegrationFlows.from(Jms.messageDriverChannelAdapter(this.jmsConnectionFactory)
.outputChannel(MessageChannels.queue("inbound").get())
.destination("test"))
.get();
}
@Bean
public IntegrationFlow channelFlow() {
return IntegrationFlows.from("inbound")
.transform("hello "::concat)
.handle(System.out::println)
.get();
}
我收到有关“Dispatcher没有订阅者频道”的错误。将消息有效负载发送到另一个集成流的首选配置是什么?
答案 0 :(得分:5)
使用Java DSL channel auto-creation
你应该小心。例如,.outputChannel(MessageChannels.queue("inbound").get())
没有将MessageChannel
bean填充到bean工厂。但是从另一方IntegrationFlows.from("inbound")
做到了这一点。
要解决您的问题,我建议您为@Bean
频道提取inbound
,或者仅依靠DSL:
return IntegrationFlows.from(Jms.messageDriverChannelAdapter(this.jmsConnectionFactory)
.destination("test"))
.channel(MessageChannels.queue("inbound").get())
.get();
随意提出GH问题以修复.outputChannel()
上的JavaDocs或将其全部删除,因为它很混乱。