一场由没有序列化的类引发的血案

分析思路

  1. 先分析了该服务的提供方有没有在注册中心注册,检查后发现有注册,并且版本号与调用的客户端配置的是一样的。
  2.  分析了RPC接口返回的exception 信息 返现了一条关键错误提示:【Caused by: java.lang.IllegalStateException: Serialized class com.xx.dto.DemoDTO must implement java.io.Serializable】
  3. 经过检查返现该DTO没有 实现 Serializable接口。

问题原因

dubbo接口的数据传输需要进行序列化。

解决方法

在服务提供方,返回的DTO implement Serializeable。

报错信息

Caused by: java.lang.IllegalStateException: Serialized class com.xx.dto.DemoDTO must implement java.io.Serializable
    at com.alibaba.com.caucho.hessian.io.SerializerFactory.getDefaultSerializer(SerializerFactory.java:261)
    at com.alibaba.com.caucho.hessian.io.SerializerFactory.getSerializer(SerializerFactory.java:233)
    at com.alibaba.com.caucho.hessian.io.Hessian2Output.writeObject(Hessian2Output.java:406)
    at com.alibaba.com.caucho.hessian.io.JavaSerializer$FieldSerializer.serialize(JavaSerializer.java:313)
    ... 28 more

猜你喜欢

转载自www.cnblogs.com/luao/p/10824227.html