feign.FeignException: status 400 reading xxx 異常解決方案

目錄

1、問題描述

2、產生的原因(可能導致報錯的原因)

2.1 傳遞的參數可能爲空值

2.2 Header信息長度過長 或者 參數信息過長

2.3 參數沒有使用註解指定

2.4 方法沒有指定請求方式

3、解決方案


1、問題描述

在請求某個接口時, 在接口異常的情況下,一次正常返回異常信息,緊接着請求就會報feign.FeignException: status 400 reading xxx 異常的問題

feign.FeignException: status 400 reading OpTacticsInfoApiFeign#saveTactics(TacticsInfoParam,String)

2、產生的原因(可能導致報錯的原因)

背景:項目使用的是微服務架構,採用springboot來開發,所有的服務都是基於內嵌tomcat來運行

2.1 傳遞的參數可能爲空值

2.2 Header信息長度過長 或者 參數信息過長

2.3 參數沒有使用註解指定

2.4 方法沒有指定請求方式

3、解決方案

方案一(針對原因2.1)

@RequestParam(value = "xxx",required = false) String xxx

方案二(針對原因2.2)

修改內嵌tomcat的參數,內嵌tomcat對參數的默認限制是8K,例如:可以修改配置文件server.max-http-header-size=20480

將參數封裝成對象,使用 @RequestBody註解 在feign消費服務上

方案三(針對原因2.3)

@RequestParam(value = "xxx",required = false) String xxx

方案四(針對原因2.4)

Feign 請求服務,在Controller 之上的 xxxMapping 的註解,如果使用 @RequestMapping 的話, 需要聲明method 屬性, 否則就會引發這個異常,例如:@RequestMapping(value="/...,method=RequestMethos.GET)

 

注意事項:只能使用@RequstMapping註解,不能使用GetMapping註解
 

 

【參考資料】

1、feign.FeignException: status 400 reading xxxFeignService#selectByKeyWord(String) 和 status 404...錯誤

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章