feign接口調用異常的解決方向


1. consul: 檢查調用方服務與被調用方服務是否在同一個consul;
2. swagger: 檢查swagger注釋是否清晰、恰當; 
比如:

 @ApiImplicitParams(value = {
            @ApiImplicitParam(name = "A", value = "A", required = true),
            @ApiImplicitParam(name = "B", value = "B", required = true, paramType = "query"),
            @ApiImplicitParam(name = "C", value = "C", paramType = "query")
    })

 在swagger上調試時,會把A當作body類型的值進行傳遞,而不是query,因為A沒有被標志為paramType="query"

3. 參數: 檢查方法出入參是否統一,包括出入參類型,@RequestParam 里面的value、name等;
4. @EnableFeignClients: 檢查啟動類里的feign注解的參數配置,例如我們的feign接口都在包 cn.ucmed.package 里,那么我們就在啟動類里加注解:@EnableFeignClients({"cn.ucmed.package"});
5. 依賴的jar包版本: 檢查調用方與被調用方,使用的feign接口所在的jar包版本是否一致。例如我們用的是packageA,需要檢查packageA的版本信息;
6. 檢查feign接口的實現是否正確,比如 @PostMapping(value = "/just/test"), 曾經我把value寫成了name,導致一直不能正常調用,value和path是等價的,和name不是。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM