我有一个简单的Spring配置用于单元测试,包括ActiveMQ嵌入式代理,JMS生成器和JMS监听器。测试成功通过,但当关闭所有内容时,我看到一些例外。像这样:
[ WARN] [ActiveMQ Connection Executor: tcp://localhost/127.0.0.1:61616 03:16:23] (SingleConnectionFactory.java:onException:301) Encountered a JMSException - resetting the underlying JMS Connection
javax.jms.JMSException: java.io.EOFException
我的配置:
<beans>
<amq:queue id="defaultDestination" physicalName="example.A"/>
<bean id="jmsProducerTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
<property name="defaultDestination" ref="defaultDestination"/>
</bean>
<bean id="jmsMessageSender" class="package.JMSMessageSender"/>
<amq:broker id="broker" useJmx="false" persistent="false" destroyApplicationContextOnStop="true" >
<amq:transportConnectors>
<amq:transportConnector uri="tcp://localhost:61616"/>
</amq:transportConnectors>
</amq:broker>
<bean id="messageListener" class="package.MessageReceiver"/>
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory" depends-on="broker">
<property name="targetConnectionFactory">
<amq:connectionFactory brokerURL="tcp://localhost:61616"/>
</property>
</bean>
<jms:listener-container connection-factory="connectionFactory" container-type="default">
<jms:listener destination="example.A" ref="messageListener"/>
</jms:listener-container>
</beans>
我认为经纪人正在关闭,然后连接工厂失去连接。但depends-on
没有帮助。
谢谢你的帮助。
答案 0 :(得分:2)
据我所知,没有这些例外情况,无法关闭嵌入式AMQ。 AMQ代码将EOF视为相对无害的事件,但它会记录该异常。您可以尝试在Apache ActiveMQ项目中打开JIRA。