有异常,需要解决异常。
找不到servlet类,缺servlet jar报错
Caused by: java.lang.ClassNotFoundException: javax.servlet.ServletContext
原因
没有引入servlet jar。
那就引入jar
javax.servlet javax.servlet-api 3.1.0 provided
引入jar之后,再运行。还是会报一样的错误。
说明jar没有引入成功,为什么?因为provided,只在编译和运行时会加载jar,运行时不会,所以要改为默认compiler,运行时也需要加载jar。
再次运行,现在servlet类可以找到了。
怎么查看运行时是否引入了jar?
右键项目——》mvn clean package,然后在target目录可以看到最终的打包之后的可执行程序(其实就是项目的可执行jar,因为是springboot项目)。
截图里可以看到如果作用域是默认compiler,target目录下的项目的lib目录就可以看到servlet jar。
如果作用域是provided,就看不到jar。
找不到springboot的类,也是maven作用域有问题再次运行,虽然找不到servlet类的问题解决了,但是现在又找不到springboot的类。
Caused by: org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
原因:也是作用域问题。
解决方法:全部改为默认作用域。
再次运行,终于成功。
404虽然启动成功,但是在浏览器访问出现404。
原因:找不到请求的资源文件,即截图里的jsp文件。
为什么?本质原因?因为代码里的是有的。本质原因是因为没有添加打包资源文件的目录。
解决方法:在pom文件添加资源文件的打包目录。
src/main/webapp meta-INF/resources **/** false
再次允许,classes/meta-INF目录就有资源文件了。
再次在浏览器访问,成功,404解决。
参考https://www.jianshu.com/p/c5d84c2c7fc8
https://segmentfault.com/a/1190000018346932



