Caused by: feign.FeignException$NotFound: status 404 reading OrderClient#isBuyCourse(String,String)

本文详细分析了Feign在服务调用中遇到404错误的常见原因,包括路径不匹配、服务提供者版本不同步、参数为空以及服务消费者端的fallback实现。解决方法包括检查URL路径、保持服务同步、避免参数为null以及使用服务降级处理。通过这些步骤,可以有效地解决Feign调用服务时出现的404错误。
摘要由CSDN通过智能技术生成

feign报404错误原因

Caused by: feign.FeignException$NotFound: status 404 reading OrderClient#isBuyCourse(String,String)
在这里插入图片描述

1、路径错误

在服务消费者采用GetMapping方式,如

@GetMapping("/eduorder/order/isBuyCourse/{courseId}/{memberId}")
public boolean isBuyCourse(@PathVariable(value = "courseId") String courseId,@PathVariable(value = "memberId") String memberId);

在服务提供者端,用

@RestController
@RequestMapping("/eduorder/order")
@CrossOrigin
public class TOrderController {
	 @GetMapping("isBuyCourse/{courseId}/{memberId}")
    public boolean isBuyCourse(@PathVariable String courseId,@PathVariable String memberId){
    }
}

服务消费者端,一定要加上/order

2、

在多个客户端上启动了服务提供者服务,而这两边的服务方法没同步,所以在调用feign时,会采用负载均衡,在多个客户端上一边读取一次。如果这个时候恰好读的是没有指定方法的客户端提供的服务,就会报404错误。
建议改好方法之后提交,两边再跑服务

3、

路径上参数为null
例如courseId为null,匹配不到路径地址,触发不了路径问题

4、

我的问题就是在服务消费者文件夹下面添加一个实现类
在这里插入图片描述
在实现类里面实现服务消费者类的方法,然后在服务消费者中添加一个
fallback=OrderFeignClient.class
在这里插入图片描述

这样就解决啦

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ヾ凉秋

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值