关于java.util.LinkedHashMap cannot be cast to 实体类......问题的出现以及解决办法
在使用RestTemplate调用服务的时候,因为服务提供者返回的是一个List集合,所以在使用消费者调用的时候,restTemplate.getForObject()
期待返回的类型直接写成了List.class
@GetMapping("/list2")public List<EmployeeModel> list2() {List<EmployeeModel> employeeModels = restTemplate.getForObject("http://SPRINGCLOUD-EMPLOYEE-PROVIDER/emp/list", List.class);employeeModels.forEach(System.out::println);return employeeModels ;}
运行的时候,在遍历的时候,就报了java.util.LinkedHashMap cannot be cast to…这个异常
后来仔细想了一下,调用过程中数据类型的变化:服务提供者返回的是LIst集合,但是标记了@RequestBody
,所以返回的时候会把List集合转变成json的形式(内部是jackjson技术支持的)
然后服务消费者使用restTemplate.getForObject()
,第二个参数传入接受的类型(就是将响应体中内容以什么类型封装)
如果像上面的写法,就会再把提供者返回的json转变成list,但是这个list跟之前不一样(一个是jackjson转变的,一个是restTemplate转变的,可能内部机制不一样)
所以遍历集合就会报上面的异常
改进方法:
restTemplate.getForObject()
以String类型接受,也即接受的是一个json字符串// 将响应体内容以String格式接受,即json字符串 String json = restTemplate.getForObject("http://SPRINGCLOUD-EMPLOYEE-PROVIDER/emp/list",String.class);
再使用阿里巴巴的fastjson将json字符串转变成list集合
// 将json字符串转集合 List<EmployeeModel> employeeModels = JSON.parseArray(json, EmployeeModel.class);
现在就是一个正常的List集合了,可以遍历之类的操作
以上是自己在学习时个人的理解,如有不对,谢谢指正
关于java.util.LinkedHashMap cannot be cast to 实体类......问题的出现以及解决办法相关推荐
- 解决java.util.LinkedHashMap cannot be cast to 实体类......的问题
解决java.util.LinkedHashMap cannot be cast to 实体类-的问题 背景描述 在学习谷粒商城时,使用openfeign进行远程调用,由于有个接口返回的是R<L ...
- 【FastJson】FastJson一个Bug java.util.LinkedHashMap cannot be cast to com.alibaba.fastjson.Jsonobject
1.背景 我们原本使用fastjson 1.2.47,后来要升级版本,升级到 1.2.70,升级之后,发现我们的程序报错 Exception in thread "main" ja ...
- 在JWT令牌转获取私有化声明时出错,java.util.LinkedHashMap cannot be cast to cn.mar.crm.sys.entity.SysUser
在JWT令牌转获取私有化声明时,执行以下代码时报错 String jwt = req.getHeader(JwtUtils.JWT_HEADER_KEY);Claims claims = this.v ...
- java.util.LinkedHashMap cannot be cast to Entity
前后端数据传输转换问题-java.util.LinkedHashMap cannot be cast to Entity 问题场景:项目前端使用json传输方式,后台接收后对象变成了LinkedHas ...
- java.util.LinkedHashMap cannot be cast to 问题
今天在做项目时候出现 java.util.LinkedHashMap cannot be cast to xxx 异常.在此记录. 问题背景: 通过RestTemplate调用另一个服务接口,获取Li ...
- class java.util.LinkedHashMap cannot be cast to xxxx.xxx.xxxx
错误 java.lang.ClassCastException: class java.util.LinkedHashMap cannot be cast to class com.itran.cor ...
- 解决java.util.LinkedHashMap cannot be cast to com.km.pojo.ItemCat问题
解决java.util.LinkedHashMap cannot be cast to com.km.pojo.ItemCat com.alibaba.fastjson.JSONObject cann ...
- 多种方式解决Java控制台报错 java.util.LinkedHashMap cannot be cast to.....
问题描述 今天在使用RestTemplate调用服务的时候,因为服务提供者返回的是一个List集合,所以在使用消费者调用的时候,restTemplate.getForObject()期待返回的类型直接 ...
- java.util.LinkedHashMap cannot be cast to xxx.xxx.xxx
/*** 例: List<JavaBean> pojo= (List<JavaBean>) map.get("tableData");* 遇到错误如下:ja ...
最新文章
- 互联网引发全面深刻产业变革
- 用不惯VMware?试试这款更轻量级的虚拟机!
- logrotate机制和原理
- x509代码实例java_Java X509AttributeCertificate.getIssuer方法代码示例
- webpack --- html-webpack-plugin
- Android动画及滑动事件冲突解决(转载)
- 如何修改 asp.net core 5 程序的默认端口号?
- pkcs1转pkcs8 php,openssl RSA密钥格式PKCS1和PKCS8相互转换
- 圣诞节生成头像微信小程序源码1.3.0
- 耳目一新的在线答疑服务背后的核心技术
- 电脑计算机里怎么找恢复出厂设置,普通电脑怎么恢复出厂设置
- 对象的可访问性(C++)
- docker安装bwapp
- js 计算当前时间到下个整点时间,差多少分钟,多少秒
- 令人耳目一新的人类进化,读《人类简史》有感
- parameter与argument,property与attribute,这些翻译意思相近的词的区别
- 【我不熟悉的css】css使用background-clip,实现圆角彩色的边框,文字渐变色
- 阿里腾讯的文化产业路线
- 使用vue2实现打印在线word文件,文件流形式打印在线word,预览打印
- JAVA 第二周学习笔记