Closed 63isOK closed 3 years ago
解决方案 hessian.RegisterPOJO时支持同JavaClass不同go struct(包路径不同)
有关改动 dubbo-go/protocol/dubbo/impl/hessian.go
dubbo-go-hessian2
@63isOK 实际案例是什么情况? java调用go吗? 是一个java对象不同业务场景需要解析为不同的go结构吗? 为何不定义一个go结构体即可?
@63isOK 实际案例是什么情况? java调用go吗? 是一个java对象不同业务场景需要解析为不同的go结构吗? 为何不定义一个go结构体即可?
我按他描述做了个demo,能够复现
@wongoo 不同JavaName的触发条件
javaName入参是org.apache.dubbo.User,pojoRegistrt.j2g[javaName]返回的goName存在同名的情况,导致pojoRegistry.registry[g]获取了最后注册的那个同名struct
What happened: go中不同包有同名数据结构注册,注册的java 路径不一样. 客户端调用服务端后,在解析服务端返回的数据时,会因为类型冲突导致报错,类似: err=reflect.Set: value of type record_interface.Result is not assignable to record_interface.Result What you expected to happen: 解析不出现异常 How to reproduce it (as minimally and precisely as possible): 不同package里的数据结构本就是隔离的,不应该因为同名就导致解析失败 Anything else we need to know?: h2,dubbo-go v3,dubbo协议