4

尝试运行 Spring-boot 应用程序(v2.1.0)时出现以下错误:

说明:

尝试调用方法 org.springframework.data.mongodb.core.MongoTemplate.(Lcom/mongodb/Mongo;Ljava/lang/String;)V 但不存在。它的类 org.springframework.data.mongodb.core.MongoTemplate 可从以下位置获得:

file:/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

它是从以下位置加载的:

file:/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,但即使这样也没有解决问题。任何帮助将不胜感激。

4

2 回答 2

1

看起来 jar 已损坏或丢失,请检查所有与 spring 相关的 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;
  }
于 2018-12-11T07:34:24.223 回答
0

如果使用 Springboot 2,则需要通过Mongock更改Mongobee。语法几乎相同,因为 Mongock 项目是 Mongobee 项目的延续。

弹簧靴:

@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();
}
于 2018-12-13T13:32:36.467 回答