Dubbox 2.8.4版本,使用FST或者Kryo序列化,当服务的方法参数含有Java原生数据类型时(比如int,long等),就会出错

JKnife 发布于 2015/06/11 15:11
阅读 4K+
收藏 1

Dubbox 2.8.4版本,使用FST或者Kryo序列化,当服务的方法参数含有Java原生数据类型时(比如int,long等),就会出错。需要换成Integer、Long

FST出现java.io.EOFException
Kryo出现java.lang.ClassCastException: java.lang.String cannot be cast to java.util.Map

加载中
0
swq
swq
使用String 作为参数的时候也会出现问题IOEXception,不知道这个怎么解决
姑苏寒
回复 @JKnife :
huapox
huapox
回复 @JKnife : 你好,碰上同样的问题了 问下你们当初如何对其代码处理的
JKnife
JKnife
据说他们已经更新了新版本解决了这个问题。不过我当时等不了,自己改掉了。
0
huapox
huapox
你好,碰上同样的问题了 问下你们当初如何对其代码处理的
huapox
huapox
回复 @JKnife : 收到了 我测试看看先 多谢了~~
JKnife
JKnife
回复 @huapox : 已经发你邮箱了,测试看看。kyro一直没有用,我们都FST
huapox
huapox
回复 @swq : 是改kyro的代码吧,之前查看了下 尝试无果,能分享或指导下吗
huapox
huapox
回复 @JKnife : 抱歉一好几次都是大晚上看到这 回复不了,我邮箱:2219336717@qq.com
JKnife
JKnife
太久了,忘记改了几处了。有需要你留个邮箱好了,我邮件直接把改过的版本发给你。
下一页
0
huapox
huapox

diff001

 

dif002

0
huapox
huapox

一直是晚上到线,osc大晚上不能回复太不科学。 拖到现在。。

如上2图,2个差异的地方。  都是去了if判断,直接用else中的代码。

--------------------------------------

官方也修复了这个问题。

fix the decoding issue of kryo and fst

 li-shen committed on 31 Oct 2015

https://github.com/dangdangdotcom/dubbox/commit/85b9ab1e3e209e5ee82b75a7d38a7a1bcee8b58b

然后注意一下:修复版本与之前版本是不能通用的(交互判断变了,如上面的图),某一处上线,所有rpc项目都要引用新的dubbo jar包。

-------------------------------

现在公司 16年引入的dubbox,却不巧  拿到了之前的代码, 引入kryo协议时 问题出来了。

0
王wg
王wg

更新下kryo包到0.41,就OK了

返回顶部
顶部