【发布时间】:2021-07-01 01:02:09
【问题描述】:
我正在使用嵌入式 activeMQ 进行带有 spring JMS 的 junit 测试。测试都通过了。但是当测试完成时,日志中会出现以下异常。如何解决日志中出现的此错误
javax.jms.JMSException: Disposed due to prior exception
at org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:72)
at org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1421)
at org.apache.activemq.ActiveMQConnection.close(ActiveMQConnection.java:688)
at org.springframework.jms.connection.SingleConnectionFactory.closeConnection(SingleConnectionFactory.java:501)
at org.springframework.jms.connection.SingleConnectionFactory.resetConnection(SingleConnectionFactory.java:389)
at org.springframework.jms.connection.CachingConnectionFactory.resetConnection(CachingConnectionFactory.java:205)
at org.springframework.jms.connection.SingleConnectionFactory.onException(SingleConnectionFactory.java:367)
at org.springframework.jms.connection.SingleConnectionFactory$AggregatedExceptionListener.onException(SingleConnectionFactory.java:721)
at org.apache.activemq.ActiveMQConnection$5.run(ActiveMQConnection.java:1967)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: org.apache.activemq.transport.TransportDisposedIOException: Disposed due to prior exception
at org.apache.activemq.transport.ResponseCorrelator.onException(ResponseCorrelator.java:125)
at org.apache.activemq.transport.TransportFilter.onException(TransportFilter.java:114)
at org.apache.activemq.transport.vm.VMTransport.stop(VMTransport.java:233)
at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72)
at org.apache.activemq.transport.TransportFilter.stop(TransportFilter.java:72)
at org.apache.activemq.transport.ResponseCorrelator.stop(ResponseCorrelator.java:132)
at org.apache.activemq.broker.TransportConnection.doStop(TransportConnection.java:1194)
at org.apache.activemq.broker.TransportConnection$4.run(TransportConnection.java:1160)
... 3 common frames omitted
Caused by: org.apache.activemq.transport.TransportDisposedIOException: peer (vm://localhost#5) stopped.
单元测试类如下所示:
@SpringBootTest
public class CucumberSpringIntegration {
@Rule
public EmbeddedActiveMQBroker broker = new EmbeddedActiveMQBroker();
@Test
public void someUnitTest(){
//some assertions
}
配置包含以下内容:
java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url = vm://localhost?broker.persistent=false
参考来自这个链接activeMQ embedded Junit
【问题讨论】:
-
请贴出完整的单元测试源代码。
-
@MattPavlovich 更新了原帖中的测试代码
标签: spring-boot activemq spring-jms spring-boot-test