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

Spring Boot项目部署到Elastic Beanstalk返回404错误,本地运行正常

Elastic Beanstalk WAR包部署后/home路径返回404问题排查方案

常见原因

  • 上下文路径配置不匹配:本地运行时WAR包作为根应用部署,默认上下文路径为/,但Elastic Beanstalk默认会使用WAR包文件名作为上下文路径,导致实际可访问路径为/{war包名}/home,而非/home
  • 文件名大小写不匹配:Elastic Beanstalk底层运行环境为Linux,对文件路径大小写敏感,若视图文件名为Index.jsp但代码中映射为index.jsp,本地Windows/macOS环境不区分大小写可正常运行,部署到Linux后就会找不到文件
  • 视图解析路径配置错误:Controller映射的视图路径和WAR包内实际文件路径不一致,或打包时遗漏了JSP文件
  • Tomcat版本兼容性问题:若本地使用Tomcat 8/9,Elastic Beanstalk环境使用Tomcat 10+,会存在javax.servlet到jakarta.servlet的包名变更,导致JSP文件无法正常解析
  • 文件权限不足:Elastic Beanstalk中Tomcat运行用户没有JSP文件的读取权限,导致系统判定文件不存在

可落地解决方案

  • 修正上下文路径配置:将待上传的WAR包重命名为ROOT.war,或进入Elastic Beanstalk环境配置页->「软件」->「容器选项」,将上下文路径参数设置为/,确保应用部署在根路径
  • 校验文件路径与大小写:本地解压WAR包,确认index.jsp的实际存放路径、文件名大小写与代码中Controller映射的路径完全一致,确保打包时没有遗漏视图文件
  • 统一Tomcat版本:将Elastic Beanstalk的Tomcat版本调整为和本地运行一致的版本,避免javax/jakarta包名不兼容问题
  • 修复文件权限:在项目根目录添加.ebextensions配置文件夹,新建权限修复配置,自动在部署完成后修正项目文件权限,示例配置如下:
files:
  "/opt/elasticbeanstalk/hooks/appdeploy/post/99_fix_jsp_permission.sh":
    mode: "000755"
    owner: root
    group: root
    content: |
      #!/bin/bash
      chown -R tomcat:tomcat /usr/share/tomcat/webapps/ROOT/
      chmod -R 755 /usr/share/tomcat/webapps/ROOT/

注意将配置中的Tomcat路径替换为你环境中对应版本的实际路径。

内容的提问来源于stack exchange,提问作者Cole Newman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 17:24:04