ideallij之Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/Filter

spring boot项目在eclipse能够启动,但是当你忍受不了eclipse或sts的慢时,

激情澎湃的将项目用ideallij启动时,有没有遇到这个磨人的小妖精:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/servlet/Filter

......

是不是很纳闷,为什么eclipse跑得好好的,挪到ideallij启动就失败了?

从错误我们可以看到缺少Filter类,而Filter类在Servlet-api.jar中,

但是spring-boot项目并没有显示的去引用Servlet-api.jar,

因为用spring-boot时默认集成了tomcat,而在tomcat中默认是有Servlet-api.jar的,

既然没有Servlet-api.jar,网上有人说,显示的在pom.xml中引入Servlet-api.jar,

其实不合逻辑,你想想一个在eclipse能启动的项目,换了个集成工具,

你就要加jar包,是谁给你的胆子,难道就不怕出问题吗?

其实出现这个问题的原因就是ideallij配置问题,先上一个图:

File--->Project Structure--->Modules-->Dependencis

有没有发现,这几个含有tomcat字眼的东西,对应的Scope范围是Provided,

表示的是这几个包在开发时使用,但是我们现在要启动项目,当然使用范围就不能是Provided。

聪明的你已经想到了解决办法,就是把Scope范围改为Compile即可。如图:

都选成Compile,然后点击Apply-->OK,然后去启动你的项目,

如果启动了,是不是有一种久违的感觉和想大声的说一声"Fuck"。

猜你喜欢

转载自blog.csdn.net/qq_39940205/article/details/81638768