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

使用Insomnia调用SpringBoot微服务时出现Error 404 Not Found问题

排查SpringBoot微服务GET请求404问题

我正在学习SpringBoot,尝试基于PostgreSQL和SpringBoot搭建一个简单微服务。当使用Insomnia发送GET请求至路径/postgres/all时,收到如下404响应:

{
  "timestamp": "2023-08-22T16:25:43.756+00:00",
  "status": 404,
  "error": "Not Found",
  "message": "No message available",
  "path": "/postgres/all"
}

相关代码如下:

业务方法

@Override
public List<Person> selectAll() {
    String query = "SELECT * FROM PERSON";
    return jdbcTemplate.query(query, new BeanPropertyRowMapper<>(Person.class));
}

控制器代码

@RestController
@RequestMapping("/postgres")
public class PersonController {

    private AppService appService;


    @GetMapping(value = ("/all"), produces = {MediaType.APPLICATION_JSON_VALUE})
    public ResponseEntity<List<Person>> selectAll() {
        return new ResponseEntity<>(appService.selectAll(), HttpStatus.OK);
    }

    @PostMapping(value = ("/ins"), produces = {MediaType.APPLICATION_JSON_VALUE})
    public ResponseEntity<Person> insert(@RequestBody Person person) throws ClassNotFoundException {
        return new ResponseEntity<>(appService.insert(person), HttpStatus.OK);
    }
}

数据库连接配置

@Configuration
public class Connect {
    @Value("postgres")
    String username;

    @Value("postgres")
    String password;

    @Value("jdbc:postgresql://localhost:5432/postgres")
    String url;

    public DataSource postgresConfig() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setUsername(username);
        dataSource.setPassword(password);
        dataSource.setUrl(url);

        return dataSource;
    }
}

Insomnia请求截图:
Insomnia请求截图


排查方向

  • 控制器扫描范围问题:检查PersonController所在包是否在SpringBoot主类的扫描范围内。@SpringBootApplication默认扫描自身包及其子包,若控制器在外部包,需添加@ComponentScan指定扫描路径。
  • 依赖注入缺失:PersonController中的appService未使用@Autowired或构造函数注入,虽不会直接导致404,但可能引发控制器初始化异常,需补充注入注解。
  • 路径语法问题:@GetMapping中value = ("/all")的括号属于冗余写法,虽语法合法,但可能导致路径解析异常,建议改为@GetMapping("/all")。
  • Bean定义缺失:数据库配置类Connect的postgresConfig方法未添加@Bean注解,Spring无法识别该数据源Bean,若服务启动异常可能间接引发404。
  • 端口与上下文路径不匹配:确认Insomnia请求的端口是否与SpringBoot应用启动端口一致;若配置了server.servlet.context-path,请求需加上该前缀(如/context/postgres/all)。
  • 控制器方法异常:若selectAll方法存在未捕获的初始化异常,可能导致映射失效,但此类情况通常会伴随其他错误日志,需结合启动日志排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 21:13:30