Everytime I try to run spring boot app configured with JSP I get this error:
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)
I've tried to run samples: spring-boot-sample-web-jsp and spring-boot-sample-web-jsp
The result is the same for those samples. I run application using IntelliJ IDEA and have no IDEA why it does not work.
There's a bug in IntelliJ that means that provided dependencies aren't added to the classpath. Assuming you want to stick with IDEA, you have a few options:
mvn spring-boot:run
<scope>provided</scope>
from the pom. This will mean that app can't be deployed as a war to Tomcat or similarEDIT: The bug is fixed and the server will start normally, as long as you tick the Include dependencies with "Provided" scope checkbox in the run configuration, below classpath.
I found a better workaround for this bug.
If you run your project using command line directly, you will lose the debug function provided by IDE. You can click the Maven Project
tab, find the spring-boot:run goal
, right click then select debug XXXX
. By using this way you can get full debug feature that your IDE gives.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With