这里写目录标题
1.运行环境
使用docker运行了RabbitMQ的服务器:
在idea中导入springAMQP的jar包,分别编写了子模块生产者publisher,消费者consumer:
1.在publisher中运行测试代码:
2.在consumer中配置队列监听器并运行主类:
2.报错信息
先运行consumer主类再运行publisher测试类,查看队列信息的发送和接收:
运行主类时出现了以下报错:
3.解决方案
查看rabbitMQ是否存在该队列信息:
在publisher中与MQ服务器建立连接,创建对应队列即可:
具体代码如下:也就是官网中简单模型的hello world案例
当然,主机名,端口号,账户密码这些需要根据实际情况修改
bash
public class PublisherTest {
@Test
public void testSendMessage() throws IOException, TimeoutException {
// 1.建立连接
ConnectionFactory factory = new ConnectionFactory();
// 1.1.设置连接参数,分别是:主机名、端口号、vhost、用户名、密码
factory.setHost("192.168.61.141");
factory.setPort(5672);
factory.setVirtualHost("/");
factory.setUsername("root");
factory.setPassword("123456");
// 1.2.建立连接
Connection connection = factory.newConnection();
// 2.创建通道Channel
Channel channel = connection.createChannel();
// 3.创建队列
String queueName = "simple.queue";
channel.queueDeclare(queueName, false, false, false, null);
// 4.发送消息
String message = "hello, rabbitmq!";
channel.basicPublish("", queueName, null, message.getBytes());
System.out.println("发送消息成功:【" + message + "】");
// 5.关闭通道和连接
channel.close();
connection.close();
}
}
4.查看解决之后的效果
运行测试类:
再次运行消费者主类: