Caused by: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation [methodName=getIdToNickNameMapByIds, parameterTypes=null]

代码远程调用的时候返回这个错误

提示:解码请求失败

原因:我错误使用了 stream().map(FeedbackVO::getHandleUserId).toList(); 然后接着去数据库中查询

List是一个大类,底下有许多继承这个类的子类 stream.tolist() 和 collect(Collectors.toList())虽然返回的都是List,但是他们其实是list下对应的不同的子类 假设stream.tolist() 是ListA类 , collect(Collectors.toList())是ListB类

正常去数据库中查询,需要的是ListB类。 我们调用查询的接口时xxx.getIds(ListB类),

如果错误使用ListA,由于是一个大类下的子类,所以表现上是没有问题的,但是入参类不同,进行解析的时候就会解析失败,程序会判定你要调用的并不是getId(ListB类)这个接口,继续会去找xxx.getIds(ListA类)的接口,但是根本就没有xxx.getIds(ListA类),未找到就会报调用失败。

其实如果list的数据是给前端的话,那ListA和ListB没有任何区别。

推荐阅读

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: