1. <dd id="erndk"></dd>
                1. 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.yachtsalesaustralia.com/tech/detail-116001.html

                  贊(0)
                  關注微信小程序
                  程序員編程王-隨時隨地學編程

                  掃描二維碼或查找【程序員編程王】

                  可以隨時隨地學編程啦!

                  技術文章導航 更多>
                  国产在线拍揄自揄视频菠萝

                        1. <dd id="erndk"></dd>