【发布时间】:2022-01-13 12:45:39
【问题描述】:
我正在将 Java 11 (SpringBoot 2.4.1) 应用程序升级到 Java 17 和 Spring 2.6.1。
在使用 SpringBoot 2.4.1 时,我有以下依赖项:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
...
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-apt</artifactId>
<version>${querydsl.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.querydsl</groupId>
<artifactId>querydsl-mongodb</artifactId>
<version>${querydsl.version}</version>
</dependency>
${querydsl.version} 由 SpringBoot 依赖管理管理。
但是当升级到 SpringBoot 2.6.1 时,我遇到了这种不兼容问题:
-
spring-boot-starter-data-mongodb带来mongodb-driver-core/4.4.0 -
querydsl-mongodb带来mongo-java-driver/3.12.8
我得到这个错误:
The called method's class, com.mongodb.connection.ClusterSettings, is available from the following locations:
jar:file:/C:/Users/SXBN9329/.m2/repository/org/mongodb/mongodb-driver-core/4.4.0/mongodb-driver-core-4.4.0.jar!/com/mongodb/connection/ClusterSettings.class
jar:file:/C:/Users/SXBN9329/.m2/repository/org/mongodb/mongo-java-driver/3.12.8/mongo-java-driver-3.12.8.jar!/com/mongodb/connection/ClusterSettings.class
Action:
Correct the classpath of your application so that it contains compatible versions of the classes com.mongodb.connection.DefaultClusterFactory and com.mongodb.connection.ClusterSettings
有人有办法解决这个问题吗?
【问题讨论】:
-
查询DSL 5 should support MongoDB 4。您是否尝试过排除 3.12 驱动程序?
-
@AndyWilkinson 我试过了,但没有成功。我已经找到原因了,我会发布答案。
标签: java spring-boot spring-data spring-data-mongodb querydsl