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

pom文件中:

1.将packing改成war

2.添加sevlet-api

<!--添加servlet-api的依赖,用来打war包  -->
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <scope>provided</scope>
</dependency>  

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部署。

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

巴中第一皇子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值