postman调用接口报404错误记录

问题表象: postman调用接口报404错误详解 每天的BUG奇奇怪怪。。

使用 Spring Boot 进行开发

0.正常情况是以下图示

1.如果访问的服务未开通或端口不对应该是下面的响应状态

2.如果URL路径中服务名拼写错误,如下图所示 HTTP Status 404 - Not Found

3.如果URL路径中,接口路径拼写错误 404 Not Found

然而本次错误,看起来和 2 的情形一样,但是认真检查URL后确保不是URL路径的问题,因为示例无参,暂忽略传参格式错误,排查过程如下

【1】排查对应Controller类是否 注解引入错误或缺少注解 【正确】

使用@RestController 或 @Controller

【2】启动类没有扫描controller包中的注解 [存疑 - 验证]

【2-1】启动类和controller的位置关系是否正确,保证启动类 和 Controller 有 共同的 父包 。如图中的myproject。 【正确】

【2-2】增加@ComponentScan注解,在注解中,写明需要扫描的包,如图中的controller,运行项目后未能成功运行,报错中提示spring-web的相关异常

所以确实未扫描到controller ,可以将启动类的@ComponentScan注解删除【正常情况下是可以自动扫描到Controller类,无需手动指定】,

怀疑 spring-web 依赖应该是有冲突或者是版本不兼容

我将该依赖注释掉 这个依赖是@RestController等注解和上传文件的 MultipartFile 所使用,是使用IDEA的快捷引入依赖的方式添加的

#依赖版本过高,导致项目报错 
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>5.3.30</version>
</dependency>

因为本项目使用spring框架版本是比较旧的【2.5.8】,所以找到了兼容版本的自适应依赖

#使用下面合适的依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

至此 项目可以正常启动,postman测试接口正常返回。

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值