dubbo传参provider接收参数缺失

情景

1 . dubbo入参消费者端无缺失,dubbo提供者接受参数有缺失

解决方案

dubbo提供者接受dto内层外层存在相同字段,相同字段接受参数缺失

原因

dubbo默认使用的序列化方式是hession

-- 序列化
public static byte[] serialize(Object obj) throws IOException {
    ByteArrayOutputStream os = new ByteArrayOutputStream();
    HessianOutput ho = new HessianOutput(os);
    ho.writeObject(obj);
    return os.toByteArray();
}
 
-- 反序列化
public static Object deserialize(byte[] by) throws IOException {
    ByteArrayInputStream is = new ByteArrayInputStream(by);
    HessianInput hi = new HessianInput(is);
    return hi.readObject();
}

当dubbo提供者父类或子类,或同一个类包装多个dto存在相同命名字段存在时,在反序列化时会对该字段做多次赋值,操作过后字段的值会造成数据不一致,其他相同字段为空时,该字段有可能为空。

posted @ 2021-08-26 15:19  扣扣M  阅读(608)  评论(0)    收藏  举报