web-dev-qa-db-fra.com

Nouvelle connexion RabbitMQ refusée en raison d'une exception SocketException

en essayant de créer une nouvelle connexion à rabbitmq s'exécutant sur un serveur différent, j'ai eu l'erreur suivante:

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.AMQChannel.exnWrappingRpc(AMQChannel.Java:124)
at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.Java:406)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.Java:516)
at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.Java:533)


Caused by: com.rabbitmq.client.ShutdownSignalException: connection error; reason: Java.net.SocketException: Connection reset


at com.rabbitmq.utility.ValueOrException.getValue(ValueOrException.Java:67)
at com.rabbitmq.utility.BlockingValueOrException.uninterruptibleGetValue(BlockingValueOrException.Java:33)
at com.rabbitmq.client.impl.AMQChannel$BlockingRpcContinuation.getReply(AMQChannel.Java:343)
at com.rabbitmq.client.impl.AMQChannel.privateRpc(AMQChannel.Java:216)
at com.rabbitmq.client.impl.AMQChannel.exnWrappingRpc(AMQChannel.Java:118)



Caused by: Java.net.SocketException: Connection reset
at Java.net.SocketInputStream.read(Unknown Source)
at Java.net.SocketInputStream.read(Unknown Source)
at Java.io.BufferedInputStream.fill(Unknown Source)
at Java.io.BufferedInputStream.read(Unknown Source)
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:131)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.Java:533)

Mesures prises: 

  • rabbitmq est en cours d'exécution sur le serveur. 
  • le serveur est spécifié 
  • le port par défaut est spécifié

lsof -i tcp: 5672

COMMAND PID UTILISATEUR TYPE FD TAILLE DU DISPOSITIF/NOM DE NŒUDS

beam.smp 3084 rabbitmq 15u IPv6 18611 0t0 TCP *: amqp (LISTEN)

rabbitmqctl list_connections

Liste des connexions ... Guest client_server 55765 en cours d’exécution .___ terminé.

netstat -tapnl | grep 5672

tcp 0 0 0.0.0.0:15672 0.0.0.0:* LISTEN 3084/beam.smp

tcp 0 0 0.0.0.0:55672 0.0.0.0:* LISTEN 3084/beam.smp

tcp 0 0 ::: 5672 ::: * LISTEN 3084/beam.smp

14
rasika vijay

Une des raisons possibles est que l'utilisateur avec lequel vous vous connectez à RabbitMQ n'a pas le droit d'accéder aux hôtes virtuels.

Vous pouvez vérifier cela en utilisant Management Plugin (onglet Admin).

17
Denis Makarskiy
  • Ne spécifiez pas le port par défaut comme vous l'avez mentionné dans vos étapes.

  • Si vous n'avez pas créé d'hôte virtuel sur le serveur actuel, sur lequel vous essayez de vous connecter, créez un hôte virtuel et accordez-lui la permission de l'administrateur.

  • Définissez l'hôte virtuel sur la fabrique avant de créer la nouvelle connexion, comme factory.setVirtualHost ("VIRTUAL_Host_NAME_ON_SERVER");

  • Assurez-vous que le nom d'utilisateur sur le serveur sur lequel vous essayez de vous connecter est Admin et avez accès à l'hôte virtuel que vous venez de créer.

  • Spécifiez votre nom d'utilisateur et votre mot de passe avec l'hôte virtuel, tout en obtenant la connexion.

  • Démarrez votre application en mode débogage et vérifiez si elle réussit, factory.newConection ();

Cela devrait permettre à vos affaires de fonctionner… .. Vous avez la même exception, et cela a fonctionné pour moi.

Si cela ne fonctionne toujours pas, collez votre extrait de code.

4
user4338724

Vous pouvez vérifier si le support SSL/TLS est activé. Ensuite, utilisez l'instruction useSslProtocol:

ConnectionFactory factory = new ConnectionFactory();
factory.useSslProtocol();
0
pauline