尝试运行Spring-boot应用程序(v2.1.0)时出现以下错误:
说明:
的单个兼容版本。
尝试调用方法org.springframework.data.mongodb.core.MongoTemplate。(Lcom / mongodb / Mongo; Ljava / lang / String;)V,但该方法不存在。它的类org.springframework.data.mongodb.core.MongoTemplate可从以下位置获得:
文件:/ C:/Users/npatil/.m2/repository/org/springframework/data/spring-data-mongodb/2.1.2.RELEASE/spring-data-mongodb-2.1.2.RELEASE.jar!/ org / springframework / data / mongodb / core / MongoTemplate.class
它是从以下位置加载的:
文件:/ C:/Users/npatil/.m2/repository/org/springframework/data/spring-data-mongodb/2.1.2.RELEASE/spring-data-mongodb-2.1.2.RELEASE.jar
行动:
更正应用程序的类路径,以使其包含org.springframework.data.mongodb.core.MongoTemplate
下面是我pom的片段:
<dependencies>
.
.
<dependency>
<groupId>com.github.mongobee</groupId>
<artifactId>mongobee</artifactId>
<version>0.13</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-mongodb</artifactId>
<version>2.1.2.RELEASE</version>
</dependency>
.
.
</dependencies>
可能会帮助您解决的一些罐子的版本是:
spring-data-mongodb
:2.1.2.RELEASE
spring-web
:5.1.2.RELEASE
mongo-java-driver
:3.8.2.RELEASE
已删除.m2
并完成了mvn clean install
,但是即使那样也不能解决问题。任何帮助将不胜感激。
答案 0 :(得分:1)
看起来像jar损坏或丢失,
检查所有与弹簧相关的罐子均为4.x或更高版本
如果可行,那么:
Mongobee依赖于Spring 4.x jar,这可能与Spring boot 2.x冲突
尝试以下方式
@Bean
public Mongobee mongobee(){
Mongobee mongobee = new Mongobee("mongodb://localhost:27017/seed");
mongobee.setChangeLogsScanPackage(InitialData.class.getPackageName());
mongobee.setMongoTemplate(template);
return mongobee;
}
答案 1 :(得分:0)
如果使用Springboot 2,则需要将Mongobee更改为Mongock。语法几乎相同,因为Mongock项目是Mongobee项目的延续。
Springboot:
@Bean
public SpringBootMongock mongock(ApplicationContext springContext, MongoClient mongoClient) {
return (SpringBootMongock) new SpringBootMongockBuilder(mongoClient, "yourDbName", "com.package.to.be.scanned.for.changesets")
.setApplicationContext(springContext)
.setLockQuickConfig()
.build();
}
春季:
@Bean
public SpringMongock mongock() {
MongoClient mongoclient = new MongoClient(new MongoClientURI("yourDbName", yourMongoClientBuilder));
return new SpringMongockBuilder(mongoclient, "yourDbName", "com.package.to.be.scanned.for.changesets")
.setLockQuickConfig()
.build();
}