Исключение ShutdownSignalException: ошибка подключения RabbitMQ на STS4

#java #rabbitmq #spring-rabbit

#java #rabbitmq #весна-кролик

Вопрос:

Я пытаюсь подключиться к RabbitMQ локально через порт 15672, но получаю сообщение об ошибке подключения. Я не уверен, что может быть причиной этого, поскольку я пытаюсь изучить RabbitMQ… Это учебное пособие 1, я даже не могу запустить. (https://www.rabbitmq.com/tutorials/tutorial-one-java.html )

Ниже приведен код и ошибка. Единственными изменениями из учебника, которые я внес, являются указание порта и имени пользователя / пароля. Есть идеи?

 package send.java;

import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;

public class Send {
    private final static String QUEUE_NAME = "hello";
    public static void main(String[] argv) throws Exception{
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setPort(15672);
        factory.setUsername("guest");
        factory.setPassword("guest");
        try (Connection connection = factory.newConnection(); Channel channel = connection.createChannel()){
            channel.queueDeclare(QUEUE_NAME, false, false, false, null);
            String message = "Hello World!";
            channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
            System.out.println(" [x] Sent '"   message   "'");
        }
    }

}
  

Ошибка

 Exception in thread "main" java.io.IOException
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:129)
    at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:125)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:375)
    at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:64)
    at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:156)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1106)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1063)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1021)
    at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1182)
    at send.java.Send.main(Send.java:15)
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error
    at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:66)
    at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:36)
    at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:502)
    at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:317)
    ... 7 more
Caused by: java.io.EOFException
    at java.base/java.io.DataInputStream.readUnsignedByte(DataInputStream.java:294)
    at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)
    at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:184)
    at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:598)
    at java.base/java.lang.Thread.run(Thread.java:832)
  

Ответ №1:

Порт 15672 является (по умолчанию) HTTP-портом для пользовательского интерфейса администратора (плагина управления).

Порт AMQP по умолчанию равен 5672.

Комментарии:

1. Спасибо, это решает мою проблему. Я использовал порт 15672 вместо порта 5672 для AMQP