Ubuntu VPS部署Spring Boot摄影网站,Tomcat访问/service报404
Spring Boot + JSP 部署Tomcat 404问题排查方案
问题背景
在Ubuntu VPS上部署个人摄影展示网站,采用Spring Boot+MySQL+JSP+Tomcat架构,本地M2 Macbook上运行正常,但VPS上访问<VPSip>:8080/service时返回404错误,访问<VPSip>:8080/可正常显示Tomcat默认页面,调整Controller映射路径后问题仍存在。
排查步骤
1. 检查WAR包部署状态
- 确认Spring Boot项目已正确打包为WAR包,且已放置在Tomcat的
webapps目录下 - 查看Tomcat启动日志(路径通常为
/var/log/tomcat[版本号]/catalina.out),重点确认:- WAR包是否自动解压
- Spring Boot应用是否完成启动,无初始化报错
- 注意:如果WAR包文件名不是
ROOT.war,访问路径需要加上WAR包名称,例如WAR包名为photography-gallery.war,则完整访问路径应为<VPSip>:8080/photography-gallery/service
2. 核对JSP视图解析配置
检查项目的application.properties(或application.yml)是否配置了正确的JSP路径:
# application.properties示例配置 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.jsp
同时确认start.jsp文件在项目中的路径为src/main/webapp/WEB-INF/jsp/,打包后WAR包内的路径需保持一致。
3. 验证Controller映射与请求路径
- 确保
MainController的@RequestMapping("/service")未被其他Controller的映射规则覆盖,也没有被自定义拦截器拦截 - 尝试访问不带末尾斜杠的路径:
<VPSip>:8080/service,部分Tomcat环境对路径末尾的斜杠处理存在差异
4. 检查数据库连接与初始化逻辑
- 查看Tomcat日志中是否存在数据库连接失败的报错,
PhotographyGallerySiteApplication中的CommandLineRunner会初始化数据,若数据库连接异常会导致Spring Boot应用无法完全启动 - 确认VPS上的MySQL服务正常运行,数据库名称、用户名、密码与本地配置一致
5. 静态资源路径校验
- 确认图片资源已放置在Tomcat的
webapps/[WAR包名称]/images/目录下,或Spring Boot已配置正确的静态资源映射 - 建议将JSP中的图片路径改为相对路径,避免硬编码IP:
<!-- 替换硬编码IP为相对路径 --> <img src="/images/firstImg.jpg" style="width:100%">
内容的提问来源于stack exchange,提问作者Oliver George James Johnson
相关产品推荐
相关产品推荐

