刚才好不容易能发送消息了,好家伙获取消息又获取不到了!搞了半天报了WARN警告
Received a message on a connection which is not yet started.
一开始我是不以为然的,说什么我获取消息时没有获取启动连接?
然后百度了半天,很少有我这样的错,无意间看了人家的代码才发现!人家connection有start!
我也是醉了,毕竟很久没有手写这种连接了!
而且前面的生产者也没有写start,但是能发送!
鬼知道!生产者可以,消费者不可以,所以才没有头绪的小马虎BUG!
翻开了教学视频发现,人家生产者也是有些start的!但是我没注意,是想着步骤打代码,没有仔细一一对比!
如果你也因为马虎遇到这个错,记得把连接先启动!
package com.atguigu.activemq.queue;
import org.apache.activemq.ActiveMQConnectionFactory;
import javax.jms.*;
public class JmsConsumer {
public static final String DEFAULT_BROKER_URL="tcp://192.168.133.130:61616";//MQ地址
public static final String QUEUE_NAME="queue1";//队列名称
public static void main(String[] args) throws JMSException {
//获取MQ连接工厂,记得填自定义的地址!因为没有修改账号和密码,否则需要三参数构造
ActiveMQConnectionFactory activeMQConnectionFactory = new ActiveMQConnectionFactory(DEFAULT_BROKER_URL);
//通过工厂获取连接
Connection connection = activeMQConnectionFactory.createConnection();
//记得要启动连接啊!
connection.start();
//通过连接创建会话
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
//通过会话创建队列
Queue queue = session.createQueue(QUEUE_NAME);
//通过会话创建指定队列的消费者
MessageConsumer messageConsumer = session.createConsumer(queue);
while (true){
System.out.println("进来了?");
TextMessage receive = (TextMessage) messageConsumer.receive();
if (null!=receive){
System.out.println("获取到消息-------"+receive.getText());
}else {
break;
}
}
messageConsumer.close();
session.close();
connection.close();
}
}
版权声明:本文为weixin_45369440原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。