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

Spring调用REST WebService出现404错误,请求技术支持

排查REST WebService 404错误的几个方向

嘿,我来帮你搞定这个404问题!咱们从最常见的几个排查点入手:

1. 确认请求的完整URL是否正确

你的方法上的@RequestMapping("/natlist")是相对路径,得结合应用的上下文路径和控制器类的前缀来拼完整URL:

  • 如果你的应用部署时的上下文路径是/my-app,那完整URL应该是http://你的域名:端口/my-app/natlist
  • 如果控制器类本身还有@RequestMapping("/api")这样的前缀,那路径就得变成/api/natlist,完整URL就是http://你的域名:端口/my-app/api/natlist
    先核对你调用代码里的URL是不是漏了这些部分!

2. 检查控制器类的注解和扫描配置

别忘了给你的控制器类加上@RestController(或者@Controller+@ResponseBody),否则Spring根本不会把它识别为REST接口处理。另外要确保这个类在Spring的组件扫描范围内(比如你的启动类上的@SpringBootApplication已经覆盖了这个类的包路径)。

正确的控制器类示例:

@RestController
// 可选:如果有全局接口前缀可以加在这里
// @RequestMapping("/api")
public class NacionalidadesController {

    @RequestMapping(value = "/natlist", produces = "application/json", method = RequestMethod.GET)
    public ResponseEntity<List<Nacionalidades>> getnatlist() {
        List<Nacionalidades> nacionalidadesList = new ArrayList<>();
        // ... 你的业务逻辑代码
        return new ResponseEntity<>(nacionalidadesList, HttpStatus.OK);
    }
}

3. 确认请求方法完全匹配

你的接口明确指定了method = RequestMethod.GET,那调用代码必须用GET请求。如果调用时不小心用了POST/PUT等其他方法,就会返回404(或者405 Method Not Allowed,部分场景下也会表现为404)。

检查你的调用代码,比如用RestTemplate的话,要确保用的是GET相关方法,示例:

ClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
RestTemplate restTemplate = new RestTemplate(requestFactory);
// 替换成你实际的完整URL
String fullUrl = "http://localhost:8080/natlist";
List<Nacionalidades> natList = restTemplate.exchange(
    fullUrl,
    HttpMethod.GET,
    null,
    new ParameterizedTypeReference<List<Nacionalidades>>() {}
).getBody();

4. 先通过工具直接测试接口

建议先用Postman、curl这类工具直接请求接口,排除调用代码的问题:

# 替换成你的实际URL
curl -X GET http://localhost:8080/natlist

如果工具请求也返回404,那问题肯定在服务端的配置(比如路径写错、控制器没被扫描到);如果工具请求正常,那就是你的调用代码里的URL或请求方法有问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:29:25