reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user user_admin

Java使用amqp-client连接rabbitmq服务端,报出如下异常

Exception in thread "main" java.io.IOException
	at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:105)
	at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:101)
	at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:123)
	at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:377)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:824)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:778)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:868)
	at rq.Producer.main(Producer.java:30)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; protocol method: #method<connection.close>(reply-code=530, reply-text=NOT_ALLOWED - access to vhost '/' refused for user 'user_admin', class-id=10, method-id=40)
	at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
	at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:32)
	at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:360)
	at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.java:225)
	at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.java:117)
	... 10 more

定位发现是连接rabbitmq使用的用户没有赋予访问权限,我创建的是admin用户,给admin用户赋予‘/’目录的访问权限就可以,执行如下命令:

sudo rabbitmqctl  set_permissions -p / admin '.*' '.*' '.*'
  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
这个异常(`ShutdownSignalException`)表示连接到RabbitMQ服务器时出现了错误。根据异常信息,显示了以下错误消息: ``` NOT_ALLOWED - vhost /vh_mnr not found ``` 这意味着RabbitMQ服务器上不存在名为 `/vh_mnr` 的虚拟主机。虚拟主机是RabbitMQ中的一个概念,用于逻辑上隔离不同的应用程序或服务。 要解决此问题,你可以执行以下步骤: 1. 确保你提供的虚拟主机名称是正确的。检查代码中的连接工厂配置,确保虚拟主机名称正确。 2. 检查RabbitMQ服务器上是否存在相应的虚拟主机。你可以使用RabbitMQ管理界面或命令行工具来验证虚拟主机的存在。 - 管理界面:在浏览器中打开RabbitMQ管理界面(通常是 `http://localhost:15672`),登录并导航到 "Admin" 部分。在 "Virtual Hosts" 页面上,确认是否存在 `/vh_mnr` 虚拟主机。 - 命令行工具:使用命令行工具 `rabbitmqctl` 来列出虚拟主机。运行以下命令检查是否存在 `/vh_mnr` 虚拟主机: ``` rabbitmqctl list_vhosts ``` 3. 如果虚拟主机不存在,你可以通过以下两种方式解决: - 创建虚拟主机:在RabbitMQ管理界面上创建一个新的虚拟主机,或使用命令行工具 `rabbitmqctl` 创建虚拟主机。 - 更改代码中的虚拟主机名称:如果你希望连接到现有的虚拟主机,确保代码中提供的虚拟主机名称正确。 请根据你的实际情况检查并调整虚拟主机的配置,以解决这个问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dmfrm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值