Spring启动JSP错误:NoClassDefFoundError

use*_*916 10 java spring jsp spring-mvc spring-boot

每次我尝试运行配置了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)
Run Code Online (Sandbox Code Playgroud)

我试过运行示例:spring-boot-sample-web-jspspring-boot-sample-web-jsp

这些样品的结果是相同的.我使用IntelliJ IDEA运行应用程序并且没有IDEA为什么它不起作用.

And*_*son 19

IntelliJ中存在一个错误,意味着所提供的依赖项不会添加到类路径中.假设你想坚持使用IDEA,你有几个选择:

  • 在IDEA中手动配置类路径
  • 使用命令行运行示例 mvn spring-boot:run
  • <scope>provided</scope>从pom中删除所有出现的内容.这意味着app不能作为战争部署到Tomcat或类似的

编辑:错误已修复,服务器将正常启动,只要您在运行配置中勾选包含依赖项的"已提供"范围复选框,在类路径下方.