MongoDB连接报错java.lang.NoSuchFieldError ACKNOWLEDGED

BUG描述

使用SpringBoot整合MongoDB时,正要运行代码连接mongo,就赤红赤红的报了个错:

1
2
3
4
5
Exception in thread "main" java.lang.NoSuchFieldError: ACKNOWLEDGED
at com.mongodb.MongoClientOptions$Builder.<init>(MongoClientOptions.java:960)
at com.mongodb.MongoClient.<init>(MongoClient.java:155)
at com.mongodb.MongoClient.<init>(MongoClient.java:145)
at com.example.demo.mongo.MongoConnectTest.main(MongoConnectTest.java:15)

这一下就傻眼了,对于刚接触mongo的人来说,是很懵圈的,大脑知识库中没有这个异常信息的解决办法,只能谷歌了,没想到有那么多人遇到过这个问题


BUG解决

在Stack Overflow上找到一个帖子:

https://stackoverflow.com/questions/13593614/mongodb-java-lang-nosuchfielderror

其中jyemin的回答可以说是直击要害了,顺利的解决了这个问题,我把截图贴上,以防帖子被删

image-20191023182806521

其实就是在工程中引入了多个版本不同的mongo-java-driver,所以导致程序混乱,只要保留自己真正使用的那个版本,其他的都删除即可

我的配置:

image-20191023183034949

将2.7.1版本的依赖删除就可以正常运行了