基于FeignException$InternalServerError的解決方案
原因:
feign傳值出錯(cuò)無法接收到傳值
由于是POST所以添加@RequestBody進(jìn)行嘗試
解決:
錯(cuò)誤原因是未添加@RequestBody
嘗試不通過json直接在body中傳字符串看看能不能直接通過@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);
按理說應(yīng)該是沒問題的,對方也返回了code為500的響應(yīng),說明請求確實(shí)送達(dá)了對方接口,但是沒有正常處理。
于是懷疑是參數(shù)沒有傳對,然后就打斷點(diǎn)調(diào)試,把發(fā)送請求前的參數(shù)信息“p”復(fù)制出來,打開對方項(xiàng)目的swagger文檔,發(fā)送復(fù)制來的參數(shù),發(fā)現(xiàn)能正常調(diào)通。
這就奇怪了,同樣的參數(shù)在我這里通過feign調(diào)用就不行,在swagger上直接調(diào)用就可以。于是開始到處找原因,最后在別人的建議下用抓包工具抓從我調(diào)用方法這里發(fā)出的請求包,看看從我這里發(fā)出的包是否任然與swagger上輸?shù)膮?shù)一樣。
果然發(fā)現(xiàn)了問題,因?yàn)閷Ψ降腜rojectInfo類的crateTime屬性是LocalDate類型的,為了類型一致我這里建實(shí)體類時(shí)也把createTime屬性設(shè)為LocalDate類型的。
在swagger上測試直接輸字符串就行,對方的接口在接收參數(shù)時(shí)直接就將其轉(zhuǎn)為LocalDate了:
{ ....... "createTime" : "2020-01-09" ......... }
但是我的請求發(fā)出后,抓的包顯示createTime變成了這樣:
這就導(dǎo)致與對方的接收參數(shù)不一致,自然就直接報(bào)錯(cuò)了。最后直接把我的ProjectInfo實(shí)體類的createTime屬性設(shè)為String類型即可,也可以引入jar包后使用一些注解在發(fā)送時(shí)將這個(gè)屬性序列化成指定的格式如”yyyy-MM-dd“
總之就是對于LocalDate這個(gè)類,默認(rèn)轉(zhuǎn)化為json時(shí)將它看成了一個(gè)普通的JavaObject(我預(yù)期轉(zhuǎn)化成yyyy-MM-dd),然后發(fā)送到網(wǎng)絡(luò)上。而在對方接收時(shí)卻不能根據(jù)那種格式j(luò)son正確的轉(zhuǎn)換成LocalDate類型的對象,于是就報(bào)錯(cuò)。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Java ClassCastException異常解決方案
- java.lang.NumberFormatException異常解決方案詳解
- java.lang.NullPointerException異常問題解決方案
- Spring Cloud Gateway自定義異常處理Exception Handler的方法小結(jié)
- Java中Exception和Error的區(qū)別詳解
- Java異常 Factory method''sqlSessionFactory''rew exception;ested exception is java.lang.NoSuchMethodError:
- 解析PHP中Exception異常機(jī)制
- Java e.printStackTrace()案例講解
相關(guān)文章
java并發(fā)編程專題(一)----線程基礎(chǔ)知識
這篇文章主要介紹了java并發(fā)編程線程的基礎(chǔ)知識,文中講解非常詳細(xì),幫助大家更好的學(xué)習(xí)JAVA并發(fā)編程,感興趣想學(xué)習(xí)JAVA的可以了解下2020-06-06idea雙擊圖標(biāo)打不開,無反應(yīng)的解決
這篇文章主要介紹了idea雙擊圖標(biāo)打不開,無反應(yīng)的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09SpringBoot使用swagger生成api接口文檔的方法詳解
在之前的文章中,使用mybatis-plus生成了對應(yīng)的包,在此基礎(chǔ)上,我們針對項(xiàng)目的api接口,添加swagger配置和注解,生成swagger接口文檔,需要的可以了解一下2022-10-10springboot項(xiàng)目打包并部署到Tomcat上及報(bào)錯(cuò)處理方案
這篇文章主要介紹了springboot項(xiàng)目打包并部署到Tomcat上及報(bào)錯(cuò)處理方案,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-08-08Java使用Tessdata做OCR圖片文字識別的詳細(xì)思路
這篇文章主要介紹了Java使用Tessdata做OCR圖片文字識別的詳細(xì)思路,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-07-07Springboot整合Swagger2后訪問swagger-ui.html 404報(bào)錯(cuò)問題解決方案
這篇文章主要介紹了Springboot整合Swagger2后訪問swagger-ui.html 404報(bào)錯(cuò),本文給大家分享兩種解決方案,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06