查过没有相似问题
问题内容:
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反序列化的模式?如果有,有大概的计划吗
2条答案
按热度按时间sauutmhj1#
Same questin, how can i make dubbo support serialize generic parameter and result
v7pvogib2#
use fastjson,gson