<property name="brokerURL" value="${activeMQ.connection.brokerURL}" />
<property name="userName" value="${activeMQ.connection.userName}"></property>
<property name="password" value="${activeMQ.connection.password}"></property>
</bean>
<bean id="jmsFactory"
class="org.springframework.jms.connection.CachingConnectionFactory">
<property name="targetConnectionFactory" ref="amqConnectionFactory"></property>
<property name="sessionCacheSize" value="${activeMQ.connection.sessionCacheSize}" />
</bean>
<!-- Spring JMS Template -->
<bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsFactory" />
</bean>
<!-- Spring JMS Template -->
<bean id="myJmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="jmsFactory" />
</bean>
<!-- 定义消息队列 -->
<bean id="sendMessageQueue" class="org.apache.activemq.command.ActiveMQQueue">
<constructor-arg value="com.xxx.push.queue" />
</bean>
<!-- Message Sender Definition -->
<bean id="jpushSender" class="com.xxx.activemqSpring.JPushSender">
<property name="jmsTemplate" ref="myJmsTemplate"></property>
<property name="queue" ref="sendMessageQueue"></property>
</bean>
<!-- Message Receiver Definition -->
<bean id="jpushListener" class="com.xxx.activemqSpring.JPushListener"></bean>
<bean id="jmsContainer"
class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<property name="connectionFactory" ref="jmsFactory" />
<property name="destination" ref="sendMessageQueue" />
<property name="messageListener" ref="jpushListener" />
<!-- <property name="concurrentConsumers" value="3" /> -->
</bean>
以上为我的activemq+spring配置文件。启动过程及使用不会报错,但是在关闭tomcat服务器时会抛出未终止线程的错误,错误代码如下:
警告: The web application [xxx] appears to have started a thread named [ActiveMQ Task-1] but has failed to stop it. This is very likely to create a memory leak. Stack trace of thread:
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.util.concurrent.SynchronousQueue$TransferStack.awaitFulfill(Unknown Source)
java.util.concurrent.SynchronousQueue$TransferStack.transfer(Unknown Source)
java.util.concurrent.SynchronousQueue.poll(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source)
java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
java.lang.Thread.run(Unknown Source)
请教各位大神,什么原因?添加destroy-method吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。