环境信息
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®ister.ip=192.168.14.8&remote.timestamp=1541551569434&revision=1.0&side=consumer&timeout=10000×tamp=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
看了源码,已经解决了。
我们遇到的问题是Long型在序列化的时候出错,看了源码,源码在readObject的时候会判断最后一个字符,如果是L,则使用Long型转换,所以我们强制加了L字母。 之所以我们Long型需要定义成String,是因为前端JS在处理Long的时候会有精度损失,所以我们后端直接定义成了String,而dubbo在转换的时候自动转成了Int,在加了L字母在最后之后解决了此问题。
原回答者GitHub用户zhenghui317
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。