Docker容器中的RabbitMQ不允许我的Java应用程序连接

时间:2018-05-29 18:41:31

标签: java docker rabbitmq

我在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容器以验证凭据?

1 个答案:

答案 0 :(得分:0)

显然,您无法使用一个Docker容器中的管理控制台来管理另一个Docker容器中的RabbitMQ。