Tengo una aplicación java basada en el servidor mongo 4.2 y las versiones de los componentes son las siguientes
spring-boot 2.2.5.RELEASE spring-data-mongodb2.2.5.RELEASE mongo-java-driver3.12.1Actualicé Spring Boot a 2.5.8, por lo tanto, hice algunos cambios para actualizar las dependencias de la siguiente manera
spring-boot2.5.8 spring-starter-parent2.5.8 spring-data-mongodb 3.2.3 mongodb-driver-core 4.2.3 <dependency> <groupId>org.springframework.data</groupId> <artifactId>spring-data-mongodb</artifactId> <version>3.2.3</version> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-core</artifactId> <version>4.2.3</version> </dependency> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver-sync</artifactId> <version>4.2.3</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.8</version> </dependency>Como usé recién agregado
**import com.mongodb.client.MongoClient; import com.mongodb.client.MongoClients;**es decir, la API moderna que usa el controlador mongo-java 3.12.1 Actualicé a mongodb-driver-sync 4.2.3
Resolví todos los errores de compilación, pero en la implementación obtuve errores como el método no encontrado para getSrvHost () en una depuración adicional que encontró que la antigua dependencia de mongo-java-driver 3.3.0 ya estaba presente en el proyecto
Excluí que la dependencia y el problema anterior se resolvieron ahora que no hay una dependencia anterior presente, pero aún aparece el siguiente error sin usar el enfoque de API heredada
java.lang.NoClassDefFoundError: com/mongodb/MongoClient Caused by: java.lang.NoClassDefFoundError: com/mongodb/MongoClientCompletamente atascado en este punto en el proceso de actualización del controlador y Spring, sin usar com.mongodb.MongoClient en todo el proyecto, arroja un error en la implementación.
Se recomienda usar spring-boot-starter-parent como <parent> para usar versiones compatibles.
Simplemente agregue la dependencia spring-boot-starter-data-mongodb y tendrá todos los controladores MongoDB necesarios.
Eliminar de pom.xml : spring-data-mongodb , mongodb-driver-core , spring-starter-parent
Nota: Utilice siempre la última versión, ya que la 2.5.8 tiene 3 vulnerabilidades
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.2</version> <relativePath/> </parent> ... <dependencies> ... <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-mongodb</artifactId> </dependency> </dependencies>