升级 springboot 时 MongoCustomConversions 出现 NoClassDefFoundError

NoClassDefFoundError on MongoCustomConversions while upgrading springboot

我收到以下错误

java.lang.NoClassDefFoundError: Could not initialize class org.springframework.data.mongodb.core.convert.MongoCustomConversions

我正在升级 springboot 到 2.6.6,springframework 到 5.3.18,我还添加了 spring-data-mongodb 依赖版本: 3.3.3

详细堆栈跟踪:

Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.springframework.data.mongodb.core.convert.MongoCustomConversions at org.springframework.boot.autoconfigure.data.mongo.MongoDataConfiguration.mongoCustomConversions(MongoDataConfiguration.java:63) at sun.reflect.GeneratedMethodAccessor342.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:483) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154) ... 75 more

spring pom 中的依赖项是:

   <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-commons</artifactId>
        <version>2.6.3</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-mongodb</artifactId>
        <version>2.6.6</version>
    </dependency>
   <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.3.18</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>5.3.18</version>
     </dependency>
     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>5.3.18</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
        <scope>compile</scope>
     </dependency>
     <dependency>
        <groupId>org.springframework.hateoas</groupId>
        <artifactId>spring-hateoas</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>5.3.18</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jcl</artifactId>
        <version>5.3.18</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>2.6.6</version>
        <scope>test</scope>
     </dependency>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>3.3.3</version>
    </dependency>

    and in properties file I have added :

    <spring-data-commons.version>2.6.0</spring-data-commons.version>
    <spring-data-mongodb.version>3.3.3</spring-data-mongodb.version>
    <spring-boot.version>2.6.6</spring-boot.version>
    <spring.version>${spring-boot.version}</spring.version>

您能否列出您程序中的所有依赖项,下面是我的 pom.xml 的片段,我可以毫无问题地使用 MongoCustomConversions。

Spring 开机:2.6.6 Spring 框架:5.3.18 spring-data-mongodb:3.3.3

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
  ....
  
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-mongodb</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

您好,添加以下依赖项后,此错误已解决:

 <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>bson</artifactId>
        <version>4.6.0</version> </dependency`

这是最新的bson版本,您可以添加一个与您的其他依赖兼容的版本