這里寫目錄標題
- 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.查看解決之后的效果
運行測試類:
再次運行消費者主類: