pom文件中:
1.将packing改成war
2.添加sevlet-api
3.修改内置tomcat为外置
或者移除内置tomcat
4.修改启动类继承SpringBootServletInitializer并重写其中的configure方法
5.利用maven命令先clean再package,如果是eclipse则右击项目,选择run as->maven clean ,再run as->maven install
记得先clean,否则有可能war包会有问题
遇到的问题:
1.jar包问题
启动tomcat时遇到该问题一般是pom文件中jar包缺失或者冲突,检查一下jar包的版本和缺失的jar包,我报错就是因为把mysql的jar包注释掉了
2.tomcat版本的问题:tomcat的版本必须要大于或等于你项目所使用的jdk的版本,可去官网查看每个版本tomcat所支持的最低jdk版本
3.tomcat缓存的问题:如果项目用的jsp页面可能会有此问题,我用的thymeleaf没有出现此问题。
原因:
下面是摘自其他人博客的:
tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从 work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成应该是servlet文件,下次再来 访问时,就直接运行servlet类就可以向客户端反应响应页面了,所以有的博客说第一次访问时会比较慢,是因为新发布上去的页面在第一个人访问时,会先 编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户),编译后的文件都会存储在work目录下。而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。
当然说了这么多,最简单的就是用新的tomcat部署。