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

Azure App Service部署Spring应用后Controller出现404 NotFound问题求助

解决Azure App Service部署Spring应用后端点404的问题

针对你用Gradle Azure插件部署Spring应用到Azure App Service后出现的404问题,可按以下步骤排查解决:

  • 确认打包方式为WAR并排除内置Tomcat
    因为你指定了外部Tomcat作为web容器,Spring Boot默认的JAR包无法直接适配外部Tomcat,需改为WAR打包,并排除内置Tomcat依赖。在build.gradle中添加以下配置:

    apply plugin: 'war'
    
    dependencies {
        // 排除内置Tomcat,由外部Tomcat提供
        providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
        // 其他依赖...
    }
    
  • 修改启动类继承SpringBootServletInitializer
    WAR包部署到外部Tomcat时,启动类需要继承SpringBootServletInitializer并重写configure方法,确保Spring应用能被Tomcat正确加载:

    @SpringBootApplication
    public class YourApplication extends SpringBootServletInitializer {
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
            return application.sources(YourApplication.class);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(YourApplication.class, args);
        }
    }
    
  • 检查访问路径是否包含WAR包名称
    部署到Tomcat后,默认访问路径需要加上WAR包的名称(除非你将WAR包命名为ROOT.war)。例如你的WAR包名为myapp.war,则正确的端点访问路径应为:
    https://<your-app-name>.azurewebsites.net/myapp/any
    你可以在Azure门户的Deployment Center中查看部署的文件结构,确认webapps目录下的WAR包名称。

  • 查看应用启动日志排查错误
    登录Azure门户,进入你的App Service,通过Log Stream或Advanced Tools -> Go -> Debug console -> Bash查看Tomcat启动日志和Spring应用日志,检查是否有启动失败、依赖缺失或配置错误的信息。常见日志路径:

    • Tomcat日志:/home/site/wwwroot/logs
    • Spring应用日志:/home/site/wwwroot/webapps/<your-war-name>/WEB-INF/logs
  • 验证Runtime Stack配置
    在Azure门户的Configuration -> General settings中,确认Runtime stack设置为Java 17 + Tomcat 10.0,确保和你build.gradle中的配置一致,避免版本不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 04:35:19