SpringBoot项目部署在外部tomcat时运行报错404--解决方案

一、问题描述

废话不多说,直击部署中难以解决的一种情况。在springboot项目部署外部tomcat时,按照网上的各种方案,该加的依赖也加上了,Application也继承了war包部署接口SpringBootServletInitializer,可打包出来后,从外部tomcat启动时,tomcat能启动成功,但访问项目包时却显示404错误,如图:
在这里插入图片描述

但是tomcat能够正常访问:
在这里插入图片描述

这是为什么呢?这里的404是表示没有访问到这个资源路径,究竟是哪里出错了,明明是按照网上教程写的呀。不要急,我们来看看tomcat启动日志,可以看到,tomcat没有启动spring,所以这也是404资源访问失败的原因。如何解决呢,往下看。
在这里插入图片描述

二、解决方案

首先我们要清楚tomcat是为什么扫描不到spring,如果配置都是没问题的话,那么只有一种原因,版本兼容问题。你的tomcat版本极有可能与jdk版本不兼容,所以导致外部tomcat无法扫描到spring。拿我这个项目来说,我的是springboot3+jdk17,而tomcat9与jdk17不太兼容,所以罪魁祸首就是版本的兼容问题。那么给出解决方案,如果是基于jdk17的springboot,那么将tomcat更换成tomcat10.1,jdk21、jdk11或8的springboot项目也可以根据官网给出的图更换对应的tomcat版本,这里为了方便大家查看,给出版本对应图,实际的兼容性后面会出一期给大家测一下
在这里插入图片描述

更换tomcat10.1之后,将项目打包部署在webapps下
(记得把环境变量也要换成tomcat10,否则启动的服务还是原来的tomcat版本):
在这里插入图片描述
再次启动tomcat服务,可以看到访问到spring了:
在这里插入图片描述
接下来去浏览器地址输入tomcat地址,默认是8080,再输入tomcat下的项目名url:

在这里插入图片描述
成功解决问题!

三、小结

只要确认自己的环境依赖都没有错误,那么就可以考虑一下版本的兼容性,在开发中很多的bug也是版本不兼容导致的。如果对大家有用的话,希望大家能够点赞收藏关注,后续会带来完整从0到1的springboot后台部署tomcat、前后端分离部署tomcat教程以及更多的技术解决方案,感谢大家支持!

  • 13
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值