为了账号安全,请及时绑定邮箱和手机立即绑定

请问我照着敲的consumer为什么获取消息为null?万分感谢!

consumer消息接收为Null值

https://img1.sycdn.imooc.com//5ad1725b0001cf5404970123.jpg

producer消息发送是成功的

https://img1.sycdn.imooc.com//5ad1726c0001761d04620150.jpg

以下为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()}
    }
}


正在回答

1 回答

问题解决了,是因为在createMessage方法里面没有把值传过去

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问我照着敲的consumer为什么获取消息为null?万分感谢!

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号