Java Spring NoClassDefFoundError:名称错误

Java Spring NoClassDefFoundError:名称错误,java,spring,servlets,gradle,Java,Spring,Servlets,Gradle,我有以下课程: package com.spring.domain; @Document(collection = "sportactions") // for my mongodb collection @JsonInclude(JsonInclude.Include.NON_NULL) public class SportAction extends Action { //code logic } 当我编译它时,它会给我以下错误: Servlet[dispatcherServ

我有以下课程:

package com.spring.domain;

@Document(collection = "sportactions") // for my mongodb collection
@JsonInclude(JsonInclude.Include.NON_NULL)
public class SportAction extends Action {
      //code logic
}
当我编译它时,它会给我以下错误:

Servlet[dispatcherServlet]在具有路径的上下文中的Servlet.service() []引发异常[处理程序处理失败;嵌套异常为 java.lang.NoClassDefFoundError:com/spring/domain/Sportaction(错误 名称:com/spring/domain/SportAction)]带有根本原因 java.lang.NoClassDefFoundError:com/spring/domain/Sportaction(错误 名称:com/spring/domain/SportAction

我很困惑,因为我看到我的类名为SportAction,大写字母
a
,而不是小写字母
a
,所以我尝试重构我的类名,看看它是否可以与小写字母
a
一起使用

我得到了以下错误:

Servlet[dispatcherServlet]在具有路径的上下文中的Servlet.service() []引发异常[处理程序处理失败;嵌套异常为 java.lang.NoClassDefFoundError:com/spring/domain/SportAction(错误 名称:com/spring/domain/Sportaction)]带有根本原因 java.lang.NoClassDefFoundError:com/spring/domain/SportAction(错误 名称:com/spring/domain/Sportaction

spring应用程序将完美地编译,但当我尝试使用该类时,这将出现在运行时

我也在gradle上做了几次
清理
,然后
构建
,但仍然不起作用

有人知道代码有什么问题吗

当我尝试从mongodb获取Sportaction列表时,java代码的这一行出现了错误:

List<Sportaction> sportactions = mongoTemplate.find(query, Sportaction.class);
List sportactions=mongoTemplate.find(查询,Sportaction.class);

我不知道为什么会发生此错误,但我的build.gradle文件要求我像这样构建一个jar:

task stage(type: Copy, dependsOn: [clean, build]) {
    from jar.archivePath
    into project.rootDir 
    rename {
        'app.jar'
    }
}
stage.mustRunAfter(clean)

clean << {
    project.file('app.jar').delete()
}
这导致了不匹配,我尝试重构名称以匹配文件名
SportAction
,但出现了相同的错误名称错误。然后,我决定将名称重构为其他名称,如
SportEvents
,然后重新运行代码,然后它就可以工作了

这不是最好的解决方案,但现在必须这样做。我怀疑这与jar的构建方式有关,但我不确定,
app.jar
从未运行过。
Application.main()
是我运行Spring应用程序时运行的类

我也很困惑,为什么我在bitbucket上的SportAction类似乎根本没有提交-请看我的操作文件旁边的3点-它没有日期,也没有描述


当您从IDE、命令行或两者同时执行时,会发生这种情况吗?我稍后会在命令行上尝试,但gradle构建成功,它只是在运行时爆炸。我还应该让你知道,我现在正在mac上编写代码,这很好。但是当我把它推到Windows时,错误发生了。我在命令行和IDE上尝试了它,以gradlew clean,然后gradlew build和相同的错误结果。你没有错误使用名称的xml配置吗?没有,我使用的是spring boot,所以没有xml配置文件
public class Sportaction