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

MongoDB驱动升级初始化报NoClassDefFoundError:SimpleMongoClient错误

异常产生原因
  • 核心问题是Morphia版本与MongoDB驱动版本完全不兼容:你选用的Morphia 1.6.1是1.x系列的最终版本,底层适配的是MongoDB 3.x系列驱动,完全不支持4.x版本驱动。
  • 报错提示找不到的com.mongodb.client.internal.SimpleMongoClient是MongoDB 3.x驱动中的内部实现类,MongoDB 4.x版本对客户端内核做了全量重构,该类已经被彻底移除,相关内部类路径、构造逻辑全部变更,类加载时自然会抛出ClassNotFoundException。
  • 你的客户端初始化代码完全基于3.x驱动的旧API编写:4.x驱动已经废弃了MongoClientOptions配置类、以及直接new MongoClient(seeds, credential, options)的三参数构造方式,旧API在4.x版本中不存在,就算解决了类缺失问题也会报方法不存在的错误。
修复方案

结合你的Java 8运行环境限制,可落地的修复方式如下:

  • 选用兼容版本组合(改动最小、稳定性最高):将MongoDB驱动替换为3.x系列的最终维护版本3.12.14,该版本兼容Java 8,与Morphia 1.6.1完全适配,你现有的初始化代码无需任何修改即可正常运行。
    替换后的依赖配置如下:
<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongo-java-driver</artifactId>
    <version>3.12.14</version>
</dependency>
<dependency>
    <groupId>dev.morphia.morphia</groupId>
    <artifactId>core</artifactId>
    <version>1.6.1</version>
</dependency>

注意:不要使用拆分的mongodb-driver-sync4.x包,3.12.x版本直接引入mongo-java-driver全量包即可,避免出现依赖缺失。

  • 若必须使用4.4.0版本MongoDB驱动,你需要先将项目运行环境升级到Java 11及以上,再升级Morphia到2.x系列,同时重写全部Mongo客户端初始化代码,使用4.x版本提供的MongoClientSettings配置类、MongoClients.create()工厂方法构造客户端实例,该方案改动量极大,在当前Java 8环境下无法落地。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 15:01:05