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

如何修复Spring中“未找到静态资源”404错误并改用动态资源

问题分析与解决方案

问题根源

  • 同时引入spring-boot-starter-web(Servlet栈)和spring-boot-starter-webflux(Reactive栈),Spring Boot会默认启用Reactive Web环境,导致Servlet类型的@RestController无法被正确识别映射,请求被转发到静态资源处理器。
  • 主类存在类名不一致问题:AoeEngineApplication的main方法中启动的是TestEngineApplication,可能引发组件扫描异常。
  • 包扫描配置scanBasePackages = "controllers"需确保ManagementService类确实位于controllers包下,否则Controller不会被加载。

解决步骤

1. 移除冲突依赖

根据业务需求保留一个Web栈,若无需Reactive功能,直接移除webflux依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- 移除webflux依赖,消除环境冲突 -->
<!--
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
-->

2. 修正主类启动代码

确保启动类名与main方法中引用的类一致:

@SpringBootApplication(scanBasePackages = "controllers")
public class TestEngineApplication { // 修正类名,与启动入口保持一致

    public static void main(String[] args) {
        SpringApplication.run(TestEngineApplication.class, args);
    }

}

3. 验证Controller包路径

确认ManagementService类的包声明为package controllers;,保证被组件扫描机制覆盖。

4. 使用正确的请求路径

结合上下文配置,正确的请求地址为:http://localhost:8080/TestEngine/batch

验证效果

启动应用后发送GET请求到上述地址,应返回200 OK状态码和"Test"文本,日志会显示请求被映射到ManagementService的getDetails方法,而非静态资源处理器。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 00:05:11