Spring,Junit和Qpid - AMQSession.Dispatch不会停止,因此测试不会结束

时间:2016-05-20 21:35:40

标签: java junit spring-integration spring-jms qpid

我正在使用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的参数来发送消息。

所以我的问题是:

  • 任何人都有使用qpid java broker + junit的经验吗? (超出下面的链接)突出显示我在设置/拆解中遗漏的任何明显的东西。
  • 我认为反叛线程在客户端而不是代理。如何获取Spring创建的所有会话/连接/等以正确终止它们?
  • 杀死vm会阻止有这个测试的jenkins构建吗? :d

(测试过去使用ActiveMQ正常运行,配置和设置较少,但我们已经被告知要离开ActiveMQ,所以我们就这样了。)

0 个答案:

没有答案