You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 05:35:53