java - ShutdownSignalException:STS4 上的连接错误 RabbitMQ
问题描述
我正在尝试在端口 15672 上本地连接到 RabbitMQ,但出现连接错误。当我尝试学习 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)
解决方案
端口 15672 是管理(管理插件)UI 的(默认)HTTP 端口。
默认 AMQP 端口为 5672。
推荐阅读
- tcl - Gnu 与 OpenSees 并行
- python - 启动 gunicorn.service 失败:未找到单元 gunicorn.service。乌本托 18.04
- html - 如何使用 HTML5 和 CSS3 制作一个宽度和高度可变的文本区域,并在右上角的上边框上有一个标签
- javascript - 获取变量值并将它们放在另一个文件中
- python - 使用 python pandas 将字符串数据汇总为百分比
- google-drive-api - 如何恢复应用程序已撤销的 Google Drive API?
- azure-service-fabric - Service Fabric -“System.Replicator”报告了属性“RemoteReplicatorConnectionStatus”的警告。无法访问副本 xyz
- mule - 如何检查有效负载中是否存在密钥并在选择条件下使用它
- java - Java - 带有语法的抽象语法树
- mqtt - Telegraf + MQTT + influxdb:修改 mqtt 的输入