Задать вопрос
@den_labs

Почему не работает Java клиент RabbitMQ на локальной машине?

Установил и настроил всё для работы RabbitMQ (otp_win64_17.5 и rabbitmq-server-3.5.3).

Сделал пример на C#, всё нормально работает.

Делаю тот же пример на Java, получаю:
Exception in thread "main" java.io.IOException
       at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:106)
       at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:102)
       at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:350)
       at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:621)
       at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:648)
       at Send.main(Send.java:20)
Caused by: com.rabbitmq.client.ShutdownSignalException: connection error
       at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.java:67)
       at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.java:37)
       at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.java:367)
       at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:293)
       ... 3 more
Caused by: java.io.EOFException
       at java.io.DataInputStream.readUnsignedByte(Unknown Source)
       at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:95)
       at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:139)
       at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:536)
       at java.lang.Thread.run(Unknown Source)


Не могу понять в чём причина. Если кто сталкивался подскажите куда копать?

P.S.
1) Нагуглить ничего не удалось.
2) Причем
а) с моей машины, java код дергаёт rabbitmq сервер другой машины (в сети)
б) с той же машины, к моему rabbitmq серверу тоже идёт обращение без проблем
в) а вот с моей машины, обращение к моему серверу приводит к ошибке
  • Вопрос задан
  • 1074 просмотра
Подписаться 2 Оценить Комментировать
Решения вопроса 2
@wwarlock
Хост указан как "localhost"?
Если да, то, что показывает "ping localhost"?
Поменяется ли картина, если указать "127.0.0.1" или любой другой адрес, присвоенный машине (по списку из "ifconfig -a")?
Кстати, ось какая?
Судя по C#, полагаю что это всё-таки винда. Но мало ли, может и с Mono работает.
Ответ написан
Комментировать
@den_labs Автор вопроса
Да, указан "localhost", в принципе я пробовал и "127.0.0.1".
Но, как только сделал "ping localhost" по вашему совету и получил Reply from ::1: time<1ms, ситуация немного прояснилась. Далее в Java прописал
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("::1");
и всё заработало.
Спасибо за наводку.

Единственно странно, что C# код
var factory = new ConnectionFactory() { HostName = "localhost"};
справлялся без таких манипуляций.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы