欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于FeignException$InternalServerError的解決方案

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

原因:

feign傳值出錯(cuò)無(wú)法接收到傳值

由于是POST所以添加@RequestBody進(jìn)行嘗試

解決:

錯(cuò)誤原因是未添加@RequestBody

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

Feign調(diào)用時(shí)失敗,feign.FeignException:status 500 readingXXX。LocalDate序列化引起的錯(cuò)誤

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

報(bào)錯(cuò):feign.FeignException:status 500 readingXXX。

我的調(diào)用代碼如下:

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

按理說(shuō)應(yīng)該是沒(méi)問(wèn)題的,對(duì)方也返回了code為500的響應(yīng),說(shuō)明請(qǐng)求確實(shí)送達(dá)了對(duì)方接口,但是沒(méi)有正常處理。

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

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

果然發(fā)現(xiàn)了問(wèn)題,因?yàn)閷?duì)方的ProjectInfo類的crateTime屬性是LocalDate類型的,為了類型一致我這里建實(shí)體類時(shí)也把createTime屬性設(shè)為L(zhǎng)ocalDate類型的。

在swagger上測(cè)試直接輸字符串就行,對(duì)方的接口在接收參數(shù)時(shí)直接就將其轉(zhuǎn)為L(zhǎng)ocalDate了:

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

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

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

總之就是對(duì)于LocalDate這個(gè)類,默認(rèn)轉(zhuǎn)化為json時(shí)將它看成了一個(gè)普通的JavaObject(我預(yù)期轉(zhuǎn)化成yyyy-MM-dd),然后發(fā)送到網(wǎng)絡(luò)上。而在對(duì)方接收時(shí)卻不能根據(jù)那種格式j(luò)son正確的轉(zhuǎn)換成LocalDate類型的對(duì)象,于是就報(bào)錯(cuò)。

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論