我正在使用
<int:inbound-channel-adapter id="dummyMessageA" channel="messages" method="getMessage" auto-startup="true" ref="messageGenerator">
<int:poller error-channel="errorChannel" fixed-rate="10000"/>
</int:inbound-channel-adapter>
<int:inbound-channel-adapter id="dummyNotif" channel="notifs" method="gtNotif" auto-startup="true" ref="notifGenerator">
<int:poller error-channel="errorChannel" fixed-rate="10000"/>
</int:inbound-channel-adapter>
这些入站通道是独立的但是当我部署我的Web应用程序时,只考虑第二个入站通道适配器(尽管另一个在添加dummyNotif之前正在工作)。这是正常的,我应该在配置中添加一些内容(注意:我不会聚合消息)
答案 0 :(得分:0)
我的猜测你抓住了这个问题https://jira.spring.io/browse/INT-3240 - '入站通道适配器解析器没有为MessageSources生成唯一的bean ID'。这意味着您使用Spring Integration 3.0。
所以,只需升级到最新的 - 3.0.2.RELEASE - 并告诉我们。
<强>更新强>
关于几个bean的相同id
。默认情况下,Spring允许执行此操作,最后一个bean获胜。所有其他人将被忽略并跳过。
可以AbstractRefreshableApplicationContext#setAllowBeanDefinitionOverriding(false)
禁用它。
如果您为org.springframework
类别设置了DEBUG日志记录级别,则从另一侧开始,您将在日志中显示您的bean被覆盖的消息。
答案 1 :(得分:0)
就您的问题而言,Spring Integration
允许在单个上下文中定义多个inbound-channel-adapter
。
但是,根据您的评论,您的配置multiple Service Activators with same Id
中似乎存在一些不同的问题。
它可以像@Artem在他的回答中所描述的那样被禁用。