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

来源:互联网 发布:自动卡密发卡平台源码 编辑:程序博客网 时间:2024/06/05 18:45
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"。

总结:
如果从eclipse转为使用ideallij,刚开始会有很多的不适,不过慢慢就习惯了!
然后你就会慢慢体会到它的好!

阅读全文
0 0
原创粉丝点击