我在Docker容器中运行RabbitMQ。除了RabbitMQ图像,我还安装了RabbitMQ管理插件。
使用插件我创建了用户'executor'。我将用户权限设置为
Virtual host / Configure regexp .* Write regexp .* Read regexp .*
这是我的代码
public static void main(String[] argv) throws Exception {
String message;
ConnectionFactory factory = new ConnectionFactory();
factory.setHost(SERVER);
factory.setUsername(RABBIT_USER);
factory.setPassword(RABBIT_USER_PASSWORD);
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, IS_DURABLE_QUEUE, false, false, null);
message = argv.length==1?argv[0]:"Hello World!";
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
System.out.println(" [x] Sent '" + message + "'");
channel.close();
connection.close();
}
当我运行此应用程序时,我收到以下异常
Exception in thread "main" com.rabbitmq.client.AuthenticationFailureException: ACCESS_REFUSED - Login was refused using authentication mechanism PLAIN. For details see the broker logfile.
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:362)
at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64)
at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:134)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:997)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:956)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:914)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1068)
at ca.meh.hial.producer.Producer.main(Producer.java:24)
显然,由于身份验证问题,用户无法连接。
我不确定是否需要安装其他插件。或者我是否需要配置Docker容器以验证凭据?
答案 0 :(得分:0)
显然,您无法使用一个Docker容器中的管理控制台来管理另一个Docker容器中的RabbitMQ。