首页 > 解决方案 > Spring 如何在 Spring Boot 中的何处解决“java.lang.NoClassDefFoundError: org/springframework/data/mapping/context/MappingContext”?

问题描述

我正在使用 Java 8 和 Spring Boot。尝试构建一个位于 MongoDB 上的简单 REST 应用程序。我的 Gradle 构建文件中有这个

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb:2.1.5.RELEASE'
    implementation 'org.springframework.boot:spring-boot-starter-web:2.1.5.RELEASE'
    implementation 'org.springframework.boot:spring-boot-dependencies:2.1.5.RELEASE'
}

但是当我开始我的应用程序时,我收到一个关于找不到类的错误,“org/springframework/data/mapping/context/MappingContext”:

localhost:todoapp-backend davea$ java -jar ./build/libs/spring-data-mongodb-example-1.0.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/data/mapping/context/MappingContext
    at java.lang.Class.getDeclaredMethods0(Native Method)
    at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
    at java.lang.Class.getDeclaredMethod(Class.java:2128)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:47)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
    at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
    at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
Caused by: java.lang.ClassNotFoundException: org.springframework.data.mapping.context.MappingContext
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:94)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

我应该包括哪些其他依赖项才能找到丢失的类?

标签: springspring-bootgradleclassnotfoundexception

解决方案


您应该使用 Springboot Gradle 插件。它将解决您所有的依赖问题。

plugins {
    id 'java
    id 'org.springframework.boot' version '2.1.5.RELEASE'
}
apply plugin: 'io.spring.dependency-management'

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-mongodb'
    implementation 'org.springframework.boot:spring-boot-starter-web'

}


推荐阅读