Caused by: org.apache.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation
如果错误使用ListA,由于是一个大类下的子类,所以表现上是没有问题的,但是入参类不同,进行解析的时候就会解析失败,程序会判定你要调用的并不是getId(ListB类)这个接口,继续会去找xxx.getIds(ListA类)的接口,但是根本就没有xxx.getIds(ListA类),未找到就会报调用失败。stream.tolist()和collect(Collectors.toList())虽然返
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没有任何区别。
更多推荐
所有评论(0)