omnip620 / node-zookeeper-dubbo

A middleware helps node to communicate dubbo by using its default protocol, which is registered in zookeeper
300 stars 80 forks source link

关于使用BigDecimal类型数据时,dubbo序列化错误问题 #61

Closed 151608133 closed 6 years ago

151608133 commented 6 years ago

default default 其他接口调用正常,此接口其中一个参数为BigDecimal类型,服务端报错,错误提示如下,麻烦帮忙看下是什么问题。 default

151608133 commented 6 years ago

是否是userId参数,传递需要特殊处理 ?

omnip620 commented 6 years ago

试试这样'$': { value: userId }

151608133 commented 6 years ago

你是说dubbo的接口入参配置 这样设置 ?

omnip620 commented 6 years ago

对 就你截图 红框圈起来的$那部分

151608133 commented 6 years ago

多谢!问题解决了 。什么情况下 需要配置改成{ value : param } 这种格式的 ?另外,现在这种与dubbo服务 是否是使用的长连接 ?还是每次都是new 的socket ?

omnip620 commented 6 years ago

这个是跟hessian的java实现有关的,里面有个BigDecimalDeserializer类,看下这个应该你就明白了,理论上来讲这里应该模拟java的做法,在底层把{ value : param }这一步做了。 现在是用socket,不过每次调完方法就把连接断开了 😂,等等吧,会彻底改成长连接的。

151608133 commented 6 years ago

非常感谢!!!

harryhan1989 commented 5 years ago

项目需求nodejs连接dubbo接口,找到node-zookeeper-dubbo很不错,但是复杂java对象却很难开发。网上也没搜到这方面的工具,索性自己写了个,经过多次调试试错,实现了普通json自动转换为dubbo可识别的java序列化对象,可支持java实体类内嵌实体类及内嵌List这种转化,简单高效,现在实现的比较简单,就是个工具类,有兴趣的同学欢迎包装为nodejs通用插件或eggjs插件:https://github.com/harryhan1989/json-to-java