当前位置:   article > 正文

【已解决】 com.rabbitmq.client.ShutdownSignalException: connection error; protocol meth

com.rabbitmq.client.shutdownsignalexception: connection error; protocol meth

测试代码:

  1. public class Producer {
  2. public static void main(String[] args) throws IOException, TimeoutException {
  3. // ConnectionFactory是RabbitMQ数据库的物理连接
  4. ConnectionFactory connectionFactory = new ConnectionFactory();
  5. // 服务器的本地ip地址
  6. connectionFactory.setHost("127.0.0.1");
  7. //服务器端口号,5672是MQ的默认端口号
  8. connectionFactory.setPort(5672);
  9. //设置用户名和密码
  10. connectionFactory.setUsername("guest");
  11. connectionFactory.setPassword("guest");
  12. // 连接的是哪一个虚拟主机
  13. connectionFactory.setVirtualHost("/test");
  14. // 获取一个物理TCP的物理连接
  15. Connection connection = connectionFactory.newConnection();
  16. // 创建通信通道,相当于TCP中的虚拟连接,在通道中进行数据传输
  17. Channel channel = connection.createChannel();
  18. //通道创建好了,现在创建一个队列,如果队列存在则使用这个队列
  19. // 第一个参数:队列名称ID
  20. // 第二个参数:队列是否持久化,false是不进行持久化
  21. // 第三个参数:队列是否被私有化,false是所有的消费者都可以访问,true是只有第一次拥有的消费者可以访问使用
  22. // 第四个参数:是否自动删除,false代表的是不自动删除这个队列
  23. // 其他参数
  24. channel.queueDeclare("helloworld",false,false,false,null);
  25. // 在通道里面设置发送的内容
  26. //第一个参数是交换机
  27. //第二个参数是队列的队列名
  28. //第三个个参数是额外属性
  29. // 第四个参数是要传递消息的字节数组
  30. String message = "helloworld!";
  31. channel.basicPublish("", "helloworld", null, message.getBytes());
  32. // 关闭通道
  33. channel.close();
  34. // 关闭连接
  35. connection.close();
  36. System.out.println("发送成功!");
  37. }
  38. }

测试消息中间件RabbitMQ连接的时候出现异常。

意思是用户访问RabbitMQ虚拟机的时候出现异常,这里可能是权限不够。

代码段:

rabbitmqctl set_permissions -p "/" username ".*" ".*" ".*"

在安装路径sbin 下

测试成功!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/628815
推荐阅读
相关标签
  

闽ICP备14008679号