SpringBoot项目打war包过程及错误原因,亲测可用!

时间:2024-03-18 13:38:32

pom文件中:

1.将packing改成war

SpringBoot项目打war包过程及错误原因,亲测可用!

2.添加sevlet-api

SpringBoot项目打war包过程及错误原因,亲测可用!

3.修改内置tomcat为外置

SpringBoot项目打war包过程及错误原因,亲测可用!

或者移除内置tomcat

SpringBoot项目打war包过程及错误原因,亲测可用!

4.修改启动类继承SpringBootServletInitializer并重写其中的configure方法

SpringBoot项目打war包过程及错误原因,亲测可用!

5.利用maven命令先clean再package,如果是eclipse则右击项目,选择run as->maven clean ,再run as->maven install

记得先clean,否则有可能war包会有问题

遇到的问题:

1.jar包问题

SpringBoot项目打war包过程及错误原因,亲测可用!

启动tomcat时遇到该问题一般是pom文件中jar包缺失或者冲突,检查一下jar包的版本和缺失的jar包,我报错就是因为把mysql的jar包注释掉了

2.tomcat版本的问题:tomcat的版本必须要大于或等于你项目所使用的jdk的版本,可去官网查看每个版本tomcat所支持的最低jdk版本

SpringBoot项目打war包过程及错误原因,亲测可用!

3.tomcat缓存的问题:如果项目用的jsp页面可能会有此问题,我用的thymeleaf没有出现此问题。

SpringBoot项目打war包过程及错误原因,亲测可用!

原因:

下面是摘自其他人博客的:

tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从 work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成应该是servlet文件,下次再来 访问时,就直接运行servlet类就可以向客户端反应响应页面了,所以有的博客说第一次访问时会比较慢,是因为新发布上去的页面在第一个人访问时,会先 编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户),编译后的文件都会存储在work目录下。而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。有的时候会遇到一个问题,就是修改后的页面在tomcat运行的时候显示不了修改后的痕迹。这个时候删除work目录下对应的项目文件夹,重新启动tomcat就可以了。

当然说了这么多,最简单的就是用新的tomcat部署。