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