在单独的上下文文件中定义多个消息侦听器

时间:2013-04-29 14:40:15

标签: spring jms

我在 context.xml 中定义了 JMS * 侦听器容器 *,如下所示:

<jms:listener-container connection-factory="connectionFactory" acknowledge="auto" destination-type="topic" >
    <jms:listener id="listener" destination="${jms_topic}" ref="jmsListener" method="onMessage"  />
</jms:listener-container>

我有一个集成测试套件,其中我使用特定于测试的bean和逻辑来丰富我的spring上下文。显然,我不想用这个弄乱我的代码,所以我在一个 spearate Spring context 中声明它们,包括前一个。

类似的东西:

<!-- Import regular configuration -->
<import resource="classpath*:/META-INF/spring/context.xml"/>

<!-- Test only listener -->
<jms:listener-container connection-factory="connectionFactory" acknowledge="auto" destination-type="topic" >
     <jms:listener id="listenerIT" destination="${another_topic}" ref="jmsListenerIT" method="onMessage"  />
</jms:listener-container>

如您所见,集成测试上下文声明了一个新的侦听器容器。

问题在于,每当我这样做时,前者(常规)将被忽略。好像最后一个侦听器声明会覆盖先前的声明。

在多个文件中声明多个侦听器的正确方法是什么?

提前致谢。

1 个答案:

答案 0 :(得分:0)

我找到了第一个(部分)解决方案: 如果我定义并使用另一个连接工厂进行集成测试,它就可以工作。

相关问题