Azure上升级Spring Boot至2.7.12后应用端点无法访问
检查上下文路径配置
Spring Boot 2.7.x版本中,server.servlet.context-path的配置可能在本地和Azure环境存在差异。确认Azure应用配置(Application Settings)里是否正确设置了该参数,或者启动命令中是否有覆盖配置的情况,避免因路径不匹配导致请求找不到对应的接口。验证Azure启动命令
Azure App Service的默认启动命令可能和本地执行逻辑不同。如果是JAR包部署,确认Azure的启动命令是否正确指定了目标JAR包路径,比如java -jar your-app-2.7.12.jar。升级后若JAR包名称因版本号嵌入发生变化,但Azure配置未同步更新,会导致启动的不是新包或参数错误。排查静态资源映射问题(若涉及)
升级Spring Boot后,静态资源的默认映射规则可能有细微调整,比如spring.resources.static-locations的默认值变化。如果应用依赖静态资源,确认Azure部署包中静态资源的存放位置是否符合新版本要求,或者自定义配置是否导致映射失效。查看Azure应用日志详情
即使应用启动无报错,也要检查Azure App Service的Detailed Error Logs和Application Logs,重点关注请求路由轨迹。比如是否有请求被Azure反向代理拦截,或者路由规则不匹配。可在Azure门户的App Service -> Monitoring -> Logs中搜索请求相关日志,分析具体的请求路径处理情况。确认部署包完整性
对比本地打包的JAR/WAR和Azure上的部署包,排查是否存在包损坏或未完全上传的情况。可以重新打包并重新部署,或下载Azure上的部署包与本地包校验一致性。检查Spring MVC路由与组件扫描
升级后需确认路由注解(如@RequestMapping)的匹配规则是否有变化,以及控制器类是否被Spring正确扫描。本地运行正常说明代码本身无问题,但Azure环境的类路径可能存在依赖冲突,导致控制器未被加载。可查看启动日志中的组件扫描记录,确认控制器是否成功注册。验证Azure端口配置
Spring Boot默认使用8080端口,Azure App Service会默认转发到该端口。若升级后通过server.port修改了应用端口,需确认Azure应用设置中的WEBSITES_PORT是否与应用端口一致,端口不匹配会导致请求无法转发到应用服务。
内容的提问来源于stack exchange,提问作者kiranNswamy

