开发者社区 > 云原生 > 正文

Dubbo2.6.4客户端调用dubbox2.8.4服务异常

环境信息

Dubbo version: 2.6.4 Operating System version: win10 Java version: 1.7

Exception in thread "main" com.alibaba.dubbo.rpc.RpcException: Failed to invoke remote method: uniqueIdbyPost, provider: dubbo://192.168.15.74:15401/com.uniqueId.api.IdServerService?anyhost=true&application=IDClient&check=false&cluster=broadcast&connections=100&dubbo=2.8.4&generic=false&interface=com.uniqueId.api.IdServerService&methods=uniqueIdbyGet,uniqueIdbyPost&organization=com&owner=qq&pid=6984&register.ip=192.168.14.8&remote.timestamp=1541551569434&revision=1.0&side=consumer&timeout=10000&timestamp=1542096112073&validation=true, cause: Fail to decode request due to: RpcInvocation [methodName=uniqueIdbyPost, parameterTypes=null, arguments=null, attachments={dubbo=2.0.2, input=282, path=com.uniqueId.api.IdServerService, version=0.0.0}] at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:100) at com.alibaba.dubbo.rpc.protocol.AbstractInvoker.invoke(AbstractInvoker.java:154) at com.alibaba.dubbo.validation.filter.ValidationFilter.invoke(ValidationFilter.java:58) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) at com.alibaba.dubbo.rpc.protocol.dubbo.filter.FutureFilter.invoke(FutureFilter.java:54) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) at com.alibaba.dubbo.monitor.support.MonitorFilter.invoke(MonitorFilter.java:75) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) at com.alibaba.dubbo.rpc.filter.ConsumerContextFilter.invoke(ConsumerContextFilter.java:49) at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper$1.invoke(ProtocolFilterWrapper.java:72) at com.alibaba.dubbo.rpc.listener.ListenerInvokerWrapper.invoke(ListenerInvokerWrapper.java:77) at com.alibaba.dubbo.rpc.protocol.InvokerWrapper.invoke(InvokerWrapper.java:56) at com.alibaba.dubbo.rpc.cluster.support.BroadcastClusterInvoker.doInvoke(BroadcastClusterInvoker.java:52) at com.alibaba.dubbo.rpc.cluster.support.AbstractClusterInvoker.invoke(AbstractClusterInvoker.java:244) at com.alibaba.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker.invoke(MockClusterInvoker.java:75) at com.alibaba.dubbo.rpc.proxy.InvokerInvocationHandler.invoke(InvokerInvocationHandler.java:52) at com.alibaba.dubbo.common.bytecode.proxy0.uniqueIdbyPost(proxy0.java) at com.test.ClientTest.main(ClientTest.java:21) Caused by: com.alibaba.dubbo.remoting.RemotingException: Fail to decode request due to: RpcInvocation [methodName=uniqueIdbyPost, parameterTypes=null, arguments=null, attachments={dubbo=2.0.2, input=282, path=com.uniqueId.api.IdServerService, version=0.0.0}] at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.returnFromResponse(DefaultFuture.java:245) at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:162) at com.alibaba.dubbo.remoting.exchange.support.DefaultFuture.get(DefaultFuture.java:135) at com.alibaba.dubbo.rpc.protocol.dubbo.DubboInvoker.doInvoke(DubboInvoker.java:95) ... 17 more

原提问者GitHub用户sxllxzx

展开
收起
大圣东游 2023-05-11 20:22:19 218 0
1 条回答
写回答
取消 提交回答
  • 看了源码,已经解决了。

    我们遇到的问题是Long型在序列化的时候出错,看了源码,源码在readObject的时候会判断最后一个字符,如果是L,则使用Long型转换,所以我们强制加了L字母。 之所以我们Long型需要定义成String,是因为前端JS在处理Long的时候会有精度损失,所以我们后端直接定义成了String,而dubbo在转换的时候自动转成了Int,在加了L字母在最后之后解决了此问题。

    原回答者GitHub用户zhenghui317

    2023-05-12 12:09:37
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
Dubbo开源现状与2.7规划 立即下载
Dubbo分布式服务治理实战 立即下载
《Dubbo 3.0 前瞻》 立即下载