Java17通过Eclipse连接MongoDB5.0.3提示SLF4J缺失与连接超时问题求助
问题解决说明
核心错误原因
- 主机无法解析:报错明确抛出
java.net.UnknownHostException: hostone和hosttwo,你代码中连接字符串填写的mongodb://hostOne:27017,hostTwo:27018无法被系统映射到对应的实际IP地址,导致连接请求无法发送,最终触发30秒连接超时异常。 - SLF4J依赖缺失:开头的警告是MongoDB驱动默认依赖SLF4J日志框架输出运行日志,你的项目类路径中没有对应依赖,该警告不会影响功能运行,仅会导致无法查看驱动的详细运行日志。
修复步骤
- 第一步:修改MongoDB连接地址
如果你是本地单节点安装MongoDB,直接将连接字符串替换为本地默认地址即可:
如果你确实使用多节点集群部署,将MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017");hostOne、hostTwo替换为对应服务器的实际IP地址即可,示例:
不想修改代码也可以编辑本地hosts文件添加映射,Windows系统hosts路径为MongoClient mongoClient = MongoClients.create("mongodb://192.168.3.20:27017,192.168.3.21:27018");C:\Windows\System32\drivers\etc\hosts,Linux/macOS系统路径为/etc/hosts,添加两行内容:192.168.3.20 hostOne 192.168.3.21 hostTwo - 第二步:验证MongoDB访问权限
确认目标服务器的MongoDB服务已正常启动,对应27017、27018端口未被防火墙拦截,已开放你的机器的访问权限。 - 第三步:修复SLF4J警告(可选)
如果你用Maven管理依赖,在pom.xml中添加简易SLF4J实现依赖即可:
普通Java项目直接下载对应版本的slf4j-simple jar包导入项目类路径即可。<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artifactId> <version>1.7.36</version> </dependency>
内容的提问来源于stack exchange,提问作者Baymax
相关产品推荐
相关产品推荐

