【问题标题】:java.lang.NoSuchMethodError when using Spring Boot Starter Web dependency with Mongo Driver 3.11.0将 Spring Boot Starter Web 依赖项与 Mongo Driver 3.11.0 一起使用时出现 java.lang.NoSuchMethodError
【发布时间】:2020-01-18 09:43:51
【问题描述】:

将 Spring Boot Starter Web 依赖项与最新的 MongoDB 驱动程序 3.11.0 一起使用会出现以下错误。当我切换到 3.8.2 等旧版本的 Mongo 驱动程序时,它可以正常工作。有任何想法吗?我应该排除 Mongo 依赖项吗?

如果我删除 spring boot 依赖项,Mongo 连接工作正常。

06:39:09.046 [main] INFO org.mongodb.driver.cluster - Cluster created with settings {hosts=[host1:27017, host2:27017, host3:27017], mode=MULTIPLE, requiredClusterType=UNKNOWN, serverSelectionTimeout='30000 ms', maxWaitQueueSize=500}
06:39:09.048 [main] INFO org.mongodb.driver.cluster - Adding discovered server host1:27017 to client view of cluster
06:39:09.079 [main] INFO org.mongodb.driver.cluster - Adding discovered server host2:27017 to client view of cluster
06:39:09.080 [main] INFO org.mongodb.driver.cluster - Adding discovered server host3:27017 to client view of cluster
06:39:09.083 [main] DEBUG org.mongodb.driver.cluster - Updating cluster description to  {type=UNKNOWN, servers=[{address=host3:27017, type=UNKNOWN, state=CONNECTING}, {address=host1:27017, type=UNKNOWN, state=CONNECTING}, {address=host2:27017, type=UNKNOWN, state=CONNECTING}]
Exception in thread "main" java.lang.NoSuchMethodError: com.mongodb.MongoClientSettings.getAutoEncryptionSettings()Lcom/mongodb/AutoEncryptionSettings;
    at com.mongodb.client.internal.MongoClientImpl.<init>(MongoClientImpl.java:67)
    at com.mongodb.client.internal.MongoClientImpl.<init>(MongoClientImpl.java:61)
    at com.mongodb.client.MongoClients.create(MongoClients.java:114)
    at com.mongodb.client.MongoClients.create(MongoClients.java:99)
    at com.mongodb.client.MongoClients.create(MongoClients.java:83)
    at com.mongodb.client.MongoClients.create(MongoClients.java:61)
    at com.mongo.demo.MongoDemo.main(MongoDemo.java:98)

下面的pom:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>mongo-test</groupId>
  <artifactId>mongo-test</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>mongo-test</name>
  <description>Mongo Test</description>
      <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.8.RELEASE</version>
    </parent>
  <dependencies>
      <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongodb-driver-sync</artifactId>
        <version>3.11.0</version>
    </dependency>
            <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
           <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>

        </dependency> 
  </dependencies>
             <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>

【问题讨论】:

  • 你能试试我的答案吗?

标签: java spring mongodb spring-boot


【解决方案1】:

你能试试这个依赖吗

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

而不是

<dependency>
    <groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>3.11.0</version>
</dependency>

【讨论】:

  • 如果您使用的是 Spring Boot,这就是答案。
【解决方案2】:

Spring Boot 的一些依赖问题。我通过以下方式解决了它:

  <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>bson</artifactId>
       <version>3.11.0</version>
  </dependency>
  <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongodb-driver</artifactId>
      <version>3.11.0</version>
      <exclusions>
          <exclusion>
               <groupId>org.mongodb</groupId> 
               <artifactId>bson</artifactId>
           </exclusion>
      </exclusions>
  </dependency>
  <dependency>
      <groupId>org.mongodb</groupId>
      <artifactId>mongodb-driver-core</artifactId>
      <version>3.11.0</version>
  </dependency> 

【讨论】:

    猜你喜欢
    • 2017-06-17
    • 2019-10-28
    • 2015-12-28
    • 2023-03-24
    • 2017-03-19
    • 2016-01-29
    • 2018-03-10
    • 2020-02-09
    • 2016-04-09
    相关资源
    最近更新 更多