原来是消费者监听器没有指定队列的名称destinationName=JMS;生产者队列的名称和消费者队列的名称要保持一致
生产者配置
<bean id="queueTemplate" class="org.springframework.jms.core.JmsTemplate">
<property name="connectionFactory" ref="productMQFactory"/>
<property name="defaultDestination" ref="queueDestination"/>
<property name="messageConverter" ref="jsonMessageConvert"/>
<property name="defaultDestinationName" value="JMS"/>
</bean>
消费者配置
<bean id="queueListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"
destroy-method="destroy"><property name="maxMessagesPerTask" value="1"/>
<property name="receiveTimeout" value="1"/>
<property name="connectionFactory" ref="queueConsomerConnectionFactory"/>
<property name="destination" ref="queueDestination"/>
<property name="destinationName" value="JMS"/>
<property name="messageListener" ref="queueMessageListener"/>
<property name="concurrentConsumers" value="5"/>
<property name="maxConcurrentConsumers" value="10"/>
<property name="taskExecutor" ref="taskExecutor"/>
<property name="cacheLevel" value="0"/>
</bean>