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
https://github.com/dangdangdotcom/dubbox/commit/85b9ab1e3e209e5ee82b75a7d38a7a1bcee8b58b
看下这个,这次提交把codec都改了,而且不兼容;巨坑
这个也坑了我好久
这个问题我遇到了,找到了出错的地方,但是没太搞明白原因。 2.8.4 是当当改的dubbox
报错位置在 com.alibaba.com.caucho.hessian.io.Hessian2Input readInt 方法 ,switch 条件 tag 值为 116,最后执行了 default 模块,抛出了异常: com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74
同遇到,关注一下,等解决方案
这个问题我遇到了,找到了出错的地方,但是没太搞明白原因。 2.8.4 是当当改的dubbox
报错位置在com.alibaba.com.caucho.hessian.io.Hessian2InputreadInt方法 ,switch 条件 tag 值为 116,最后执行了 default 模块,抛出了异常:com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74
我也遇到这个问题了,你这边是否有解决此问题。
@zhenghui317 没有
这个问题我遇到了,找到了出错的地方,但是没太搞明白原因。 2.8.4 是当当改的dubbox
报错位置在com.alibaba.com.caucho.hessian.io.Hessian2InputreadInt方法 ,switch 条件 tag 值为 116,最后执行了 default 模块,抛出了异常:com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74
@zhenghui317 没有
看了源码,已经解决了。
我们遇到的问题是Long型在序列化的时候出错,看了源码,源码在readObject的时候会判断最后一个字符,如果是L,则使用Long型转换,所以我们强制加了L字母。
之所以我们Long型需要定义成String,是因为前端JS在处理Long的时候会有精度损失,所以我们后端直接定义成了String,而dubbo在转换的时候自动转成了Int,在加了L字母在最后之后解决了此问题。
有两个序列化的问题修改了,有点坑~
@carryxyh
@ralf0131
@kimmking
有两个序列化的问题修改了,有点坑~
@walker2012 具体有哪两个问题可否告知下?刚遇到还在了解中
这个问题我遇到了,找到了出错的地方,但是没太搞明白原因。 2.8.4 是当当改的dubbox
报错位置在com.alibaba.com.caucho.hessian.io.Hessian2InputreadInt方法 ,switch 条件 tag 值为 116,最后执行了 default 模块,抛出了异常:com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74@zhenghui317 没有
看了源码,已经解决了。
我们遇到的问题是Long型在序列化的时候出错,看了源码,源码在readObject的时候会判断最后一个字符,如果是L,则使用Long型转换,所以我们强制加了L字母。
之所以我们Long型需要定义成String,是因为前端JS在处理Long的时候会有精度损失,所以我们后端直接定义成了String,而dubbo在转换的时候自动转成了Int,在加了L字母在最后之后解决了此问题。
请问是哪处的源代码?可以贴来看看吗
这个问题我遇到了,找到了出错的地方,但是没太搞明白原因。 2.8.4 是当当改的dubbox
报错位置在com.alibaba.com.caucho.hessian.io.Hessian2InputreadInt方法 ,switch 条件 tag 值为 116,最后执行了 default 模块,抛出了异常:com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74@zhenghui317 没有
看了源码,已经解决了。
我们遇到的问题是Long型在序列化的时候出错,看了源码,源码在readObject的时候会判断最后一个字符,如果是L,则使用Long型转换,所以我们强制加了L字母。
之所以我们Long型需要定义成String,是因为前端JS在处理Long的时候会有精度损失,所以我们后端直接定义成了String,而dubbo在转换的时候自动转成了Int,在加了L字母在最后之后解决了此问题。请问是哪处的源代码?可以贴来看看吗
dubbo-common包里面的ReflectUtils工具类中desc2class方法,你去看下吧。
这个问题我遇到了,找到了出错的地方,但是没太搞明白原因。 2.8.4 是当当改的dubbox
报错位置在com.alibaba.com.caucho.hessian.io.Hessian2InputreadInt方法 ,switch 条件 tag 值为 116,最后执行了 default 模块,抛出了异常:com.alibaba.com.caucho.hessian.io.HessianProtocolException: expected integer at 0x74@zhenghui317 没有
看了源码,已经解决了。
我们遇到的问题是Long型在序列化的时候出错,看了源码,源码在readObject的时候会判断最后一个字符,如果是L,则使用Long型转换,所以我们强制加了L字母。
之所以我们Long型需要定义成String,是因为前端JS在处理Long的时候会有精度损失,所以我们后端直接定义成了String,而dubbo在转换的时候自动转成了Int,在加了L字母在最后之后解决了此问题。请问是哪处的源代码?可以贴来看看吗
dubbo-common包里面的ReflectUtils工具类中desc2class方法,你去看下吧。
看到这里对应的是hession序列化时的writedesc.
看起来你们遇到的解决办法是处理long值,我遇到的情况是只反序列化map就出错(我甚至用反射机制在序列化前将map里的为以long型 serialVersionUID的类型改为string),不清楚hession出现readint的根本问题是啥
奇怪,为啥官方不发言呢
就因为这个事儿,一致被套在 2.8.x,好想回到主线,啊啊啊啊啊
@limingwei The community recently is focusing on 2.7 release, so the response might be slow, please subscribe and send email to [email protected] to seek for advices.
How to subscribe: http://dubbo.apache.org/zh-cn/docs/developers/contributor-guide/mailing-list-subscription-guide_dev.html
这个是 dubbox 2.8.x 的 bug.
这是dubbox 2.8.x 的 bug
求一个兼容过度方案,回归到dubbo