开发者社区> 问答> 正文

Dubbox 2.8.4版本,使用FST或者Kryo序列化,当服务的方法参数含有?400报错

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

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

展开
收起
爱吃鱼的程序员 2020-05-29 17:45:56 569 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

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

    diff001

     

    dif002

    ######

    一直是晚上到线,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协议时 问题出来了。

    ######

    更新下kryo包到0.41,就OK了

    2020-05-29 17:45:57
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载