开发者社区 问答 正文

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-06-02 11:52:00 898 分享
分享
版权
举报
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-06-02 11:52:12 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等