java.util.LinkedHashMap cannot be cast to com.huibo.framework.domain.ucenter.ext.AdminLite java.l...

問題:為啥調(diào)用rpc遠(yuǎn)程服務(wù)后泛源,返回的響應(yīng)類的結(jié)果無法向下轉(zhuǎn)型舟误?具體報錯

java.util.LinkedHashMap cannot be cast to com.huibo.framework.domain.ucenter.ext.AdminLite
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.huibo.framework.domain.ucenter.ext.AdminLite

有博主說關(guān)于springcloud中使用feign出現(xiàn)LinkedHashMap can not be cast to xxx 的問題是因?yàn)椋篺eign默認(rèn)是根據(jù)返回的數(shù)據(jù)解析為LinkedHashMap這種key value的格式,但是我們項(xiàng)目中一般會有自定義的Result<T,E>這樣的復(fù)雜類型的對象,這樣的話,feign就不能像dubbo這樣的rpc那樣得到我們自己想要的Result<T,E>對象瑞凑。

解決用 自定義FeignClient,覆蓋提供的FeignClient腕巡。我覺得不一定有用骚烧,但是用使用fastjson將對象和字符串進(jìn)行轉(zhuǎn)換就可以恢復(fù)原樣顶瞒,不過太消耗性能夸政。

@Configuration
public class FeignConfig {

   @Bean
   public Decoder feignDecoder() {
       HttpMessageConverter jacksonConverter = new MappingJackson2HttpMessageConverter(objectMapper());
       ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jacksonConverter);
       return new ResponseEntityDecoder(new SpringDecoder(objectFactory));
   }
   @Bean
   public Encoder feignEncoder(){
       HttpMessageConverter jacksonConverter = new MappingJackson2HttpMessageConverter(objectMapper());
       ObjectFactory<HttpMessageConverters> objectFactory = () -> new HttpMessageConverters(jacksonConverter);
       return new SpringEncoder(objectFactory);
   }
   public ObjectMapper objectMapper(){
       ObjectMapper objectMapper = new ObjectMapper();
       objectMapper.configure(DeserializationFeature.ACCEPT_EMPTY_STRING_AS_NULL_OBJECT, true);
       return objectMapper;
   }
 }
// 將對象轉(zhuǎn)換成為字符串
String str = JSON.toJSONString(infoDo);
// 將字符串轉(zhuǎn)換成為對象
InfoDo infoDo = JSON.parseObject(strInfoDo, InfoDo.class);
// 將對象集合轉(zhuǎn)換成為字符串
String users = JSON.toJSONString(users);
//將字符串轉(zhuǎn)換成為對象集合
List<User> userList = JSON.parseArray(userStr, User.class); 

都說是feign的問題,但是SpringCloud 復(fù)雜對象接收時候?qū)ο笞兂蒐inkeHashMap榴徐。通過使用泛型參數(shù)守问,實(shí)際類型信息完全丟失到運(yùn)行時并且無法推斷。它本質(zhì)上最終是相同的Object坑资。當(dāng)Gson發(fā)現(xiàn)你想要一個Object類型時耗帕,它使用a Map來放置JSON信息。這樣袱贮,如果你重新序列化該對象實(shí)例兴垦,數(shù)據(jù)將被保留扁耐。

所以在定義接口的時候返回的泛型必須確定捐下。其中BaseResult的范性應(yīng)該為List<UserVO> ,如果沒有寫,那么返回的結(jié)果就會變成List<LinkedHashMap>,這樣就導(dǎo)致一些去參數(shù)錯誤腐螟。

// 錯誤實(shí)例
@PostMapping("/user/queryUserByAccountStatus")
BaseResult queryUserByAccountStatus(@RequestBody AccountsTenantIdStatusArg arg);
// 正確實(shí)例
@PostMapping("/user/queryUserByAccountStatus")
BaseResult<List<UserVO>> queryUserByAccountStatus(@RequestBody AccountsTenantIdStatusArg arg);
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末窑业,一起剝皮案震驚了整個濱河市钦幔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌常柄,老刑警劉巖鲤氢,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搀擂,死亡現(xiàn)場離奇詭異,居然都是意外死亡卷玉,警方通過查閱死者的電腦和手機(jī)哨颂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來相种,“玉大人威恼,你說我怎么就攤上這事∏薏ⅲ” “怎么了箫措?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長衬潦。 經(jīng)常有香客問我斤蔓,道長,這世上最難降的妖魔是什么镀岛? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任弦牡,我火速辦了婚禮,結(jié)果婚禮上漂羊,老公的妹妹穿的比我還像新娘驾锰。我一直安慰自己,他們只是感情好拨与,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布稻据。 她就那樣靜靜地躺著,像睡著了一般买喧。 火紅的嫁衣襯著肌膚如雪捻悯。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天淤毛,我揣著相機(jī)與錄音今缚,去河邊找鬼。 笑死低淡,一個胖子當(dāng)著我的面吹牛姓言,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播蔗蹋,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼何荚,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了猪杭?” 一聲冷哼從身側(cè)響起餐塘,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎皂吮,沒想到半個月后戒傻,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體税手,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年需纳,在試婚紗的時候發(fā)現(xiàn)自己被綠了芦倒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡不翩,死狀恐怖兵扬,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情慌盯,我是刑警寧澤周霉,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布掂器,位于F島的核電站亚皂,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏国瓮。R本人自食惡果不足惜灭必,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望乃摹。 院中可真熱鬧禁漓,春花似錦、人聲如沸孵睬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掰读。三九已至秘狞,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間蹈集,已是汗流浹背烁试。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留拢肆,地道東北人减响。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像郭怪,于是被迫代替她去往敵國和親支示。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評論 2 355