feign.FeignException$NotFound: status 404 reading问题解决
硬 2020/3/10 17:01:33
前言
这篇文章只是笔者做的一个BUG解决记录,每个人遇到的问题来源可能不同,参考价值不大。
问题描述
今天在学习feign服务调用时,配置完以后启动spring boot,结果报错,报错内容显示找不到getPaymentById这个方法 O(U_U)O,先来看看项目内容
项目分析
Feign自然是要使用在客户端,来调用 CLOUD-PAYMENT-SERVICE服务,pom和yml文件配置没有问题,这一点是可以明确的。
启动文件上也没有问题,写明了@EnableFeignClients注解用来激活Feign,@EnableEurekaClient用来激活Eureka服务注册和服务发现。
然后是Controller层,就是这里调用了getPaymentById
方法,报错说找不到,怎么会找不到呢,不久是在Service层上吗?
service层,@FeignClient表明使用CLOUD-PAYMENT-SERVICE服务,具体就是8001,8002,8004端口的这几个服务,Feign功能等同于 Ribbon+RestTemplate,实现负载均衡和服务调用Feign直接用接口注解的方式指明要调用的服务和具体的方法
翻看cloud-provider-payment8001这个服务的Controller层代码,可以发现 getPaymentById这个方法的url是 /payment/get/{id} 而不是 /get/{id},所以在Feign调用会找不到这个方法 404 NOT FOUND
@RestController @RequestMapping("/payment") public class PaymentController { ... @GetMapping("/get/{id}") public CommonResult<Payment> getPaymentById(@PathVariable("id") Long id) { Payment payment = IPaymentService.getPaymentById(id); ...复制代码
问题解决
这样子的话就只要在原先用到Feign的Service层改动一下
测试一下,成功返回数据 YEAH!

关于找一找教程网
本站文章仅代表作者观点,不代表本站立场,所有文章非营利性免费分享。
本站提供了软件编程、网站开发技术、服务器运维、人工智能等等IT技术文章,希望广大程序员努力学习,让我们用科技改变世界。
[feign.FeignException$NotFound: status 404 reading问题解决]http://www.zyiz.net/tech/detail-116001.html
- 2023-03-23如何基于Security框架兼容多套用户密码加密方式
- 2023-03-23刷爆 LeetCode 双周赛 100,单方面宣布第一题最难
- 2023-03-23快速构建一个基于PyQt MVC的用户登陆模块
- 2023-03-23如何让ChatGPT帮我写一个ChatGPT
- 2023-03-22为什么 Rust 有如此复杂的语法-icode9专业技术文章分享
- 2023-03-22Leetcode 2348:零填充子数组的数量-icode9专业技术文章分享
- 2023-03-22一个简单的脚本,以保持活跃在Microsoft Teams上(适用于Mac)-icode9专业技术文章分享
- 2023-03-22Scrapy详细使用教程-icode9专业技术文章分享
- 2023-03-22Scrapy框架的各组件功能与使用-icode9专业技术文章分享
- 2023-03-22使用Scrapy框架常用九种反爬策略-icode9专业技术文章分享