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

Spring应用调用/retrieve接口报No static resource retrieve错误求助

Spring Boot 访问/retrieve接口出现404(No static resource retrieve)问题排查方案

错误原因分析

错误日志提示 No static resource retrieve 且返回404,说明Spring将/retrieve请求识别为静态资源请求,未匹配到对应的Controller接口。结合此前使用repository包功能正常的情况,问题大概率出在包扫描范围、Controller注解配置或路由冲突上。

排查与修复步骤

1. 检查Controller注解与路由配置

  • 确认对应Controller类标注了@RestController或@Controller注解,方法上的@GetMapping/@PostMapping等注解路径是否准确,比如是否正确写为@GetMapping("/retrieve"),避免拼写错误。
  • 示例正确的Controller代码:
@RestController
public class RetrieveController {
    @GetMapping("/retrieve")
    public String handleRetrieveRequest() {
        // 业务逻辑
        return "Data retrieved";
    }
}

2. 核对Spring Boot主类的包扫描范围

@SpringBootApplication注解默认扫描主类所在包及其子包。如果Controller所在包不在这个范围内,需手动指定扫描路径:

@SpringBootApplication(scanBasePackages = {"com.yourproject.controller", "com.yourproject.repository"})
public class YourApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourApplication.class, args);
    }
}

3. 检查包结构是否符合扫描规则

对比此前功能正常时的包结构,确认Controller所在包是否被Spring正确覆盖扫描。比如主类在com.yourproject,Controller要放在com.yourproject.controller或其子包下,否则无法被扫描到。

4. 排查静态资源冲突

如果src/main/resources/static目录下存在名为retrieve的文件或文件夹,Spring会优先匹配静态资源,导致接口请求被拦截:

  • 直接删除该静态资源;
  • 或通过配置修改静态资源访问前缀,避免路由冲突:
# application.properties
spring.mvc.static-path-pattern=/static/**

5. 确认请求方式匹配

如果接口使用@PostMapping("/retrieve"),但你用GET方式访问,也会返回404。使用Postman、curl等工具确认请求方式与接口注解一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 12:05:03