升级Spring Java应用Mongo驱动至5.0.0遇版本兼容错误求助
解决MongoDB驱动5.0.0与服务器Wire Version不兼容问题
错误原因
MongoDB Java驱动5.0.0要求服务器的Wire Version至少为6(对应MongoDB 3.6版本),而你的服务器Wire Version为5(对应MongoDB 3.4及以下版本),导致版本不兼容报错。你之前尝试的compressorList()是配置数据压缩的,和Wire Version无关,所以无法解决问题。
可行解决思路
1. 升级MongoDB服务器版本(推荐)
直接将MongoDB服务器升级到3.6及以上版本,这样可以完全适配驱动5.0.0的要求,同时能使用MongoDB的新特性,从根源上解决兼容问题。
2. 降级MongoDB Java驱动版本
如果暂时无法升级服务器,选择支持Wire Version 5的驱动版本,比如MongoDB驱动4.4.x系列(该系列最低支持Wire Version 5,对应MongoDB 3.4)。同时要注意Spring Data MongoDB与驱动版本的匹配:
- Spring Data MongoDB 3.4.x 对应 MongoDB驱动4.4.x
- Spring Boot项目可以通过调整
spring-boot-starter-data-mongodb的版本来间接控制驱动版本
示例Maven依赖配置:
<!-- Spring Boot项目降级依赖 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> <version>2.7.14</version> <!-- 对应Mongo驱动4.4.x,支持Wire Version 5 --> </dependency>
或者直接指定驱动版本:
<dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.4.11</version> </dependency>
3. 放弃手动修改Wire Version的尝试
MongoDB Java驱动从4.0版本开始就移除了手动设置最大Wire Version的配置项,所以任何尝试修改Wire Version的操作都是无效的,无需浪费时间在这上面。
内容的提问来源于stack exchange,提问作者ciju cherian
相关产品推荐
相关产品推荐

