亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

基于FeignException$InternalServerError的解決方案

 更新時間:2021年06月30日 09:24:54   作者:CodeSerial  
這篇文章主要介紹了FeignException$InternalServerError的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

原因:

feign傳值出錯無法接收到傳值

由于是POST所以添加@RequestBody進行嘗試

解決:

錯誤原因是未添加@RequestBody

嘗試不通過json直接在body中傳字符串看看能不能直接通過@RequestBody接收

Feign調用時失敗,feign.FeignException:status 500 readingXXX。LocalDate序列化引起的錯誤

最近在項目中需要用feign做一個服務端調用,調用別的服務的接口將我的一些信息發(fā)給它,但是總是

報錯:feign.FeignException:status 500 readingXXX。

我的調用代碼如下:

@PostMapping(value = "/xx/xxx")
public ResultData<String> saveProjectInfo(ProjectInfo p);

按理說應該是沒問題的,對方也返回了code為500的響應,說明請求確實送達了對方接口,但是沒有正常處理。

于是懷疑是參數(shù)沒有傳對,然后就打斷點調試,把發(fā)送請求前的參數(shù)信息“p”復制出來,打開對方項目的swagger文檔,發(fā)送復制來的參數(shù),發(fā)現(xiàn)能正常調通。

這就奇怪了,同樣的參數(shù)在我這里通過feign調用就不行,在swagger上直接調用就可以。于是開始到處找原因,最后在別人的建議下用抓包工具抓從我調用方法這里發(fā)出的請求包,看看從我這里發(fā)出的包是否任然與swagger上輸?shù)膮?shù)一樣。

果然發(fā)現(xiàn)了問題,因為對方的ProjectInfo類的crateTime屬性是LocalDate類型的,為了類型一致我這里建實體類時也把createTime屬性設為LocalDate類型的。

在swagger上測試直接輸字符串就行,對方的接口在接收參數(shù)時直接就將其轉為LocalDate了:

{
  .......
  "createTime"  : "2020-01-09"
   .........
}

但是我的請求發(fā)出后,抓的包顯示createTime變成了這樣:

這就導致與對方的接收參數(shù)不一致,自然就直接報錯了。最后直接把我的ProjectInfo實體類的createTime屬性設為String類型即可,也可以引入jar包后使用一些注解在發(fā)送時將這個屬性序列化成指定的格式如”yyyy-MM-dd“

總之就是對于LocalDate這個類,默認轉化為json時將它看成了一個普通的JavaObject(我預期轉化成yyyy-MM-dd),然后發(fā)送到網絡上。而在對方接收時卻不能根據(jù)那種格式json正確的轉換成LocalDate類型的對象,于是就報錯。

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

最新評論