1.问题
线上发现的bug,查了半天,服务器日志报错是这个样子的。
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.List
报错位置是:
2.分析
一度以为确实是返回值的问题,查了半天,网上也有一堆关于这个错误的资料,实践发现并不符合我这里的情况。
查了被调用模块发现,被调用模块也报错了:
java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Long
报错位置是:
调用的时候传入的明明是个Long类型,FeignClient调用过程中将其转成了String,如上图。
只有先获取转型成String,再Long.valueOf()转一下了。