You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RabbitMQ Java客户端运行报SLF4J加载失败与UnknownHostException异常

报错根因

你遇到的连接报错由两个核心配置错误导致,SLF4J相关输出是不影响主流程的警告:

  • setHost() 方法参数格式错误:该方法仅接收主机名/IP地址作为入参,不需要带http://协议前缀。你传入完整URL后,客户端会把http://localhost:15672整体作为主机名执行DNS解析,自然无法找到对应地址,直接抛出UnknownHostException。
  • 端口使用错误:15672是RabbitMQ管理控制台的Web页面端口,Java客户端通过AMQP协议连接服务,默认使用的端口是5672。
  • SLF4J警告原因:项目仅引入了amqp-client依赖,缺少SLF4J日志框架的具体实现包,不会影响核心连接逻辑,仅会导致日志无法正常输出。

另外你的原始生产者代码存在逻辑遗漏:仅完成了队列声明,没有调用消息发送方法,就算连接成功也不会真的把消息投递到队列里。

修复步骤

1. 修正生产者连接配置

修改Producer.java中的连接初始化代码,替换为正确配置:

ConnectionFactory factory = new ConnectionFactory();
// 仅传入主机名,不带协议前缀
factory.setHost("localhost");
// AMQP默认端口为5672,未修改默认配置的话可以省略该行
factory.setPort(5672);
// RabbitMQ默认账号密码均为guest,未修改认证配置的话需要加上
factory.setUsername("guest");
factory.setPassword("guest");

补全消息发送逻辑,修正后完整Producer代码如下:

package org.rabbitmq.org.rabbitmq.helloworld;
import  com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.Channel;

public class Producer {
    private static final String  QUEUE_NAME="hello";

    public static void main(String[] args) throws Exception{
        ConnectionFactory factory = new ConnectionFactory();
        factory.setHost("localhost");
        factory.setUsername("guest");
        factory.setPassword("guest");

        try(Connection conn = factory.newConnection(); Channel channel = conn.createChannel()){
            channel.queueDeclare(QUEUE_NAME,false,false,false,null);
            String msg = "Hi, i am Rahul";
            // 补全消息发送逻辑
            channel.basicPublish("", QUEUE_NAME, null, msg.getBytes());
            System.out.println("Pushed message -> "+msg);
        }
    }
}

2. (可选)消除SLF4J警告

在pom.xml的<dependencies>节点下添加SLF4J简单实现依赖即可:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.36</version>
</dependency>

3. 服务校验

启动代码前确认:

  • RabbitMQ服务正常运行,5672端口未被防火墙拦截
  • 如果是容器化部署的RabbitMQ,需要同时映射5672(AMQP服务)和15672(管理界面)两个端口,不要只映射管理界面端口

内容的提问来源于stack exchange,提问作者Rahul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.27 01:45:44