ras*_*jay 17 java connection amqp rabbitmq
在尝试创建与另一台服务器上运行的rabbitmq的新连接时,我收到以下错误:
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)
Run Code Online (Sandbox Code Playgroud)
采取的步骤:
lsof -i tcp:5672
命令PID用户FD类型设备大小/关闭节点名称
beam.smp 3084 rabbitmq 15u IPv6 18611 0t0 TCP*:amqp(LISTEN)
rabbitmqctl list_connections
列出连接... guest client_server 55765正在运行...完成.
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
不要像在步骤中提到的那样指定默认端口。
如果尚未在要连接的实际服务器上创建虚拟主机,请创建一个虚拟主机并赋予其管理员权限。
在创建新连接之前,请在工厂上设置虚拟主机,例如factory.setVirtualHost(“ VIRTUAL_HOST_NAME_ON_SERVER”);。
确保您要连接的服务器上的用户名是Admin,并且可以访问刚刚创建的虚拟主机。
在建立连接时,指定您的用户名和密码以及虚拟主机。
以Debug模式启动您的应用程序,并检查是否现在通过了factory.newConection();。
这应该使您的工作正常。有同样的例外,它为我工作。
如果仍然无法正常工作,请粘贴您的代码段。
| 归档时间: |
|
| 查看次数: |
29353 次 |
| 最近记录: |