Spring 3.2.0 REST API部署Azure成功但端点报404错误求助
Spring Boot部署Azure后404问题排查方案
一、确认Azure运行时配置匹配项目需求
- 登录Azure Portal进入目标Web App,在「配置 > 常规设置」中检查:
- Java版本必须选17,和本地开发环境一致
- Web容器选择Java SE(Spring Boot自带内嵌容器,无需额外配置Tomcat等外部容器,选错会导致路径兼容问题)
- 手动指定启动命令:在「常规设置」的启动命令栏填入
java -jar /home/site/wwwroot/server.jar,避免Azure自动识别异常
二、验证JAR包是否部署到正确路径
你提到在.scm站点看不到项目文件,说明部署过程中文件可能未传到Azure指定目录:
- 通过Web App的「高级工具 > 启动SSH会话」登录服务器,执行命令
ls /home/site/wwwroot/,查看是否存在server.jar。如果没有,说明部署步骤存在路径问题 - 调整deploy.yml的下载与部署逻辑,简化路径层级:
新增的- name: Download artifact from build job uses: actions/download-artifact@v3 with: name: build path: ./ - name: Check downloaded files run: ls ./ - name: Deploy to Azure Web App id: deploy-to-webapp uses: azure/webapps-deploy@v2 with: app-name: 'DevOpsProjectEfrei' slot-name: 'Production' publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_1BD6BC13408746048A3DDF66BE34382E }} package: './server.jar'Check downloaded files步骤可确认JAR包是否成功下载到当前工作目录
三、检查Spring Boot应用的路径配置
- 核对本地
application.properties或application.yml中的server.servlet.context-path配置:- 如果设置了
/api作为上下文路径,Azure上的访问路径应为{mywebsite}.azurewebsites.net/api/students(和本地一致) - 若未配置上下文路径,则访问路径应为
{mywebsite}.azurewebsites.net/students,避免多写前缀导致404
- 如果设置了
- 查看Azure应用启动日志:进入Web App的「监测 > 日志流」,查找Spring Boot的启动日志。如果看不到启动日志,说明应用未正常启动,大概率是JAR包未部署到位或运行时配置错误
四、排查部署源与槽位配置
- 在「部署中心」确认部署源为GitHub Actions,且最新部署记录显示成功,无其他部署源(如FTP、本地Git)覆盖已部署文件
- 若使用了部署槽位,确认槽位的Java版本、启动命令等配置与主站点完全一致,槽位配置差异会导致部署后无法正常访问
五、其他细节检查
- 端口配置:如果Spring Boot手动设置了非8080的端口,需在Azure「配置 > 应用设置」中添加
WEBSITES_PORT变量,值为自定义端口号 - 防火墙限制:确认Web App的防火墙未限制外部访问IP(若开启了IP限制,需将访问IP加入允许列表)
内容的提问来源于stack exchange,提问作者Frik
相关产品推荐
相关产品推荐

