遇到一個bug,記錄一下
這個bug在發生在微服務之間的調用,采用JWT Token機制,從認證服務中調用解析token的接口擷取存儲于token中的一些使用者資料,然後一直給我報 **java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to **這個錯誤,很疑惑,因為我自己的代碼裡面沒有用到LinkedHashMap,但是解析出來的使用者資料卻無法轉化成實體類
解決方法: 先将map.get(String key) 轉成JSON對象,再由JSON對象轉化為實體類
<dependency>
<groupId>net.sf.json-lib</groupId>
<artifactId>json-lib</artifactId>
<version>2.4</version>
<classifier>jdk15</classifier>
</dependency>
轉化:
JSONObject jsonObject= JSONObject.fromObject(map.get(Constant.USERDATA));
CmsAccountLoginVO per = (CmsAccountLoginVO)JSONObject.toBean(jsonObject, CmsAccountLoginVO.class);