Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 在单独的上下文文件中定义多个消息侦听器_Spring_Jms - Fatal编程技术网

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

Spring 在单独的上下文文件中定义多个消息侦听器,spring,jms,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

我在我的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上下文。显然,我不想把我的代码弄乱,所以我在一个Sperate Spring上下文中声明它们,其中包括前一个

比如:

<!-- 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>

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

问题是,每当我这样做时,前一个(常规的)被忽略。就好像侦听器的最后一个声明覆盖了前一个声明一样

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

提前感谢。

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

我也有同样的问题:我们有很多java模块,它们为jms侦听器容器做出了贡献。所以你的“部分解决方案”对我不起作用。您还没有发现如何在多个上下文文件上真正拆分声明吗?