我正在使用Qpid运行一些集成测试(基于the answer to this previous question的qpid设置。该应用程序是一个Spring Integration流程,接收传入的消息和进程。测试将接收消息,进程,然后检查过程结果的断言。
我设法在测试的@Before
方法中启动了java代理,测试将正确运行,但是当测试完成时,代理会在@After
上关闭,然后(在我认为客户端,但我不确定),而不是结束,创建org.apache.qpid.client.AMQSession.Dispatcher
的新实例,它们最终在无限循环而不是关闭。
[2016-05-20 17:29:28,457][DEBUG][org.springframework.jms.listener.DefaultMessageListenerContainer#0-2][org.apache.qpid.client.AMQSession.Dispatcher] - Dispatcher-2-Conn-2 created
[2016-05-20 17:29:28,457][DEBUG][Dispatcher-2-Conn-2][org.apache.qpid.client.AMQSession.Dispatcher] - Dispatcher-2-Conn-2 started
然后Dispatcher-2-Conn-2将永远在循环中运行而不会结束。 Spring使用org.apache.qpid.client.PooledConnectionFactory
作为spring JmsTemplate的参数来发送消息。
所以我的问题是:
(测试过去使用ActiveMQ正常运行,远配置和设置较少,但我们已经被告知要离开ActiveMQ,所以我们就这样了。)