问题描述:

Exception in thread "main" java.io.IOException
	at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:124)
	at com.rabbitmq.client.impl.AMQChannel.wrap(AMQChannel.java:120)
	at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:379)
	at com.rabbitmq.client.impl.recovery.RecoveryAwareAMQConnectionFactory.newConnection(RecoveryAwareAMQConnectionFactory.java:63)
	at com.rabbitmq.client.impl.recovery.AutorecoveringConnection.init(AutorecoveringConnection.java:138)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:973)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:932)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:890)
	at com.rabbitmq.client.ConnectionFactory.newConnection(ConnectionFactory.java:1044)
	at com.sessert.util.ConnectionUtil.getConnection(ConnectionUtil.java:20)
	at com.sessert.rabbitmq.Producter.main(Producter.java:20)
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:443)
	at com.rabbitmq.client.impl.AMQConnection.start(AMQConnection.java:321)
	... 8 more
Caused by: java.io.EOFException
	at java.io.DataInputStream.readUnsignedByte(Unknown Source)
	at com.rabbitmq.client.impl.Frame.readFrom(Frame.java:91)
	at com.rabbitmq.client.impl.SocketFrameHandler.readFrame(SocketFrameHandler.java:164)
	at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:602)
	at java.lang.Thread.run(Unknown Source)

解决方案:
首先开启web管理 rabbitmq-plugins enable rabbitmq_management 使用http://localhost:15672浏览器访问。
第一步:find / -name "rabbitmq.config*" –>找到到rabbitmq.config.example文件
打开这个文件:vi /usr/share/doc/rabbitmq-server-3.7.4/rabbitmq.config.example
第二步:修改这个文件如下图
在这里插入图片描述
退出 并保存:wq
第三部:将该文件移动到etc/rabbitmq文件夹下并重命名为rabbitmq.config
第四步:重启rabbitmq服务service rabbitmq-server restart
需要注意的是
在这里插入图片描述
开启web管理使用的是HTTP协议而java远程访问rabbitmq服务使用的是AMQP协议!

附带java连接工具类代码

public class ConnectionUtil {
	
	public static Connection getConnection () throws Exception{
		ConnectionFactory factory = new ConnectionFactory();
		factory.setHost("192.168.43.93");//虚拟机的localhost
		factory.setPort(5672);
		factory.setUsername("hanyuanLiu");
		factory.setPassword("hanyuanLiu");
		factory.setVirtualHost("/testme");//设置虚拟主机类似于数据库实例
		return factory.newConnection();
	}
}

至此问题解决
在这里插入图片描述


版权声明:本文为weixin_39393393原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_39393393/article/details/89950385