栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

spring boot部署war包到tomcat访问失败

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring boot部署war包到tomcat访问失败

一般使用spring boot开发的web项目都是通过jar包方式运行,使用spring boot内置的tomcat 服务器。现在有个新的需求是将项目部署到外部服务器,在此记录一下遇到的问题。

spring boot开发的web项目部署到外部tomcat服务器,常规步骤为:
1.pom文件排除tomcat依赖,添加javax.servlet-api依赖,并设置打包方式为war。
2.启动类继承SpringBootServletInitializer类并覆盖configure方法。
3.通过maven打成war包并放置到tomcat服务器webapps目录下,启动服务器即可。

但在实际测试中发现问题(tomat版本10.0.16):浏览器访问提示找不到资源

但项目通过IDEA调试代码均可正常访问

当前项目使用的springboot版本为2.6.7,

搜索测试网上多种方法仍不能解决。通过查看IDEA控制台启动日志发现项目默认包含的tomcat版本为9.0.62,怀疑版本差异导致。

下载tomcat 9.0.62部署同一个项目,启动成功,见到了熟悉的“spring”图标

浏览器访问成功

再对比前边tomcat 10.0.16的启动过程,显示项目部署完成,而且在服务器的管理界面也能看到该项目,但没有正常启动。

总结:

关于以上问题,又搜索了一些资料,找到的问题点:tomcat官网显示,自tomcat 10开始,java API的主包从javax改为jakarta,因此tomcat9及之前的项目将不能在新版本上运行。

在使用tomcat 9成功运行之后,又做了一些测试,发现文章开头讲到的部署war包的常规步骤中,只有“启动类继承SpringBootServletInitializer类”是必要的,实际上可以不覆盖configure方法,可以不添加servlet-api依赖,也可以不排除tomcat依赖。都不会影响正常运行。

以上只测试了当前的简单项目,对于其他问题欢迎留言讨论。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/924633.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号