这里写目录标题
- 1.运行环境
- 2.报错信息
- 3.解决方案
- 4.查看解决之后的效果
1.运行环境
使用docker运行了RabbitMQ的服务器:
在idea中导入springAMQP的jar包,分别编写了子模块生产者publisher,消费者consumer:
1.在publisher中运行测试代码:
2.在consumer中配置队列监听器并运行主类:
2.报错信息
先运行consumer主类再运行publisher测试类,查看队列信息的发送和接收:
运行主类时出现了以下报错:
3.解决方案
查看rabbitMQ是否存在该队列信息:
在publisher中与MQ服务器建立连接,创建对应队列即可:
具体代码如下:也就是官网中简单模型的hello world案例
当然,主机名,端口号,账户密码这些需要根据实际情况修改
public class PublisherTest {@Testpublic 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.创建通道ChannelChannel 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.查看解决之后的效果
运行测试类:
再次运行消费者主类: