[英]Spring boot JSP error: NoClassDefFoundError
每次我尝试运行配置了JSP的spring boot应用程序时都会出现此错误:
java.lang.NoClassDefFoundError: javax/servlet/ServletContext
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
.............
[more errors/exceptions]
.............
Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/ServletContext
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
我试过运行示例: spring-boot-sample-web-jsp和spring-boot-sample-web-jsp
这些样品的结果是相同的。 我使用IntelliJ IDEA运行应用程序,没有IDEA为什么它不起作用。
在错误报告中提出了另一种解决方法 。
您可以按照Spring文档中的建议使用<scope>provided</scope>
,然后进入IntelliJ中的Project Settings。 对于有问题的模块,在Dependencies选项卡中,您应该看到与spring-boot-starter-tomcat
相关的依赖项都列为“已提供”。 将它们更改为“编译”应强制IntelliJ将它们添加到类路径中。
它的优点是既不需要对pom.xml
进行任何修改,也允许您使用IntelliJ提供的Spring Boot集成。
我找到了一个更好的解决方法来解决这个bug。
如果直接使用命令行运行项目,则将丢失IDE提供的调试功能。 您可以单击Maven Project
选项卡,找到spring-boot:run goal
,右键单击然后选择debug XXXX
。 通过使用这种方式,您可以获得IDE提供的完整调试功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.