yuxiele
2018-04-14 11:25
consumer消息接收为Null值
producer消息发送是成功的
以下为consumer相关代码:
1.执行consumer入口:
AppConsumer { (String[] args) { ApplicationContext context = ClassPathXmlApplicationContext()} }
2.consumer.xml配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--导入公共配置-->
<import resource="common.xml"/>
<!--配置消息监听器-->
<bean id="consumerMessageListener" class="com.lee.jms.consumer.ConsumerMessageListener"/>
<!--配置消息监听容器,Spring提供的监听容器,管理容器去自动连接ConnectionFactory,指定具体的消息Destination和消息监听者-->
<bean id="jmsContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer">
<!--指定连接工厂,对应的是spring提供的SingleConnectionFactory-->
<property name="connectionFactory" ref="connectionFactory"/>
<!--指定目的地-->
<property name="destination" ref="queueDestination"/>
<!--指定消息监听器-->
<property name="messageListener" ref="consumerMessageListener"/>
</bean>
</beans>
3.公共配置文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd">
<!--注解声明-->
<context:annotation-config/>
<!--基础配置 START-->
<!--ActiveMQ为我们提供的ConnectionFactory-->
<bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
<property name="brokerURL" value="tcp://localhost:61616"/>
</bean>
<!--spring jms为我们提供的连接池-->
<bean id="connectionFactory" class="org.springframework.jms.connection.SingleConnectionFactory">
<property name="targetConnectionFactory" ref="targetConnectionFactory"/>
</bean>
<!--一个队列的目的地,点对点的-->
<bean id="queueDestination" class="org.apache.activemq.command.ActiveMQQueue">
<!--该构造参数的值即该目的地队列的队列名-->
<constructor-arg value="queue"/>
</bean>
<!--基础配置 END-->
</beans>
4.消息监听者
ConsumerMessageListener MessageListener { (Message message) { TextMessage textMessage = (TextMessage)message{ System..println(+ textMessage.getText())} (JMSException e) { e.printStackTrace()} } }
问题解决了,是因为在createMessage方法里面没有把值传过去
Java消息中间件
54136 学习 · 157 问题
相似问题