dubbo 序列化支持泛型的一个问题

a8jjtwal  于 2022-11-13  发布在  其他
关注(0)|答案(2)|浏览(276)

查过没有相似问题

问题内容:
hessian2,kryo这些使用class来做反序列化的返回的泛型类型出错的问题,只有fastjson这种使用type来反序列化的正常

(1)dubbo接口定义,包含泛型的返回值
public class UtopiaResponseModel implements Serializable {
private T data;
}
public interface UtopiaServiceInfoFacade {
UtopiaResponseModel getServiceInfo();
}

(2)调用结构如下,proxy使用generic模式代理
ServiceA(dubbo) -> (dubbo invoke)proxy (dubbo ref)-> ServiceB(dubbo)
在proxy中调用ServiceB之后返回的对象是Map对象描述UtopiaResponseModel,然后返回给ServiceA

(3)问题点
这个时候returnTypes[2] 里面第一个class为UtopiaResponseModel.class 第二个Type是UtopiaResponseModel

ServiceA反序列化的时候hessian2,kryo这种都是基于class的导致UtopiaServiceInfo这个类型获取的时候是object对象导致最后返回是Map对象类型,调用UtopiaResponseModel的getData的时候类型转换会出错,使用fastjson这种使用Type反序列化的正常

(4)询问
想问下以后hession2会支持基于type反序列化的模式?如果有,有大概的计划吗

sauutmhj

sauutmhj1#

Same questin, how can i make dubbo support serialize generic parameter and result

相关问题