java.io.InvalidClassException异常产生原因及解决方案
一、异常发生场景在使用Netty做Android消息推送时,发生了如下异常:io.netty.handler.codec.DecoderException: java.io.InvalidClassException: failed to read class descriptor很明显这是一个跟编解码相关的异常二、异常产生原因在整个推的项目中,消息是一个Message类,Message必须
·
一、异常发生场景
在使用Netty做Android消息推送时,发生了如下异常:
io.netty.handler.codec.DecoderException: java.io.InvalidClassException: failed to read class descriptor
很明显这是一个跟编解码相关的异常
二、异常产生原因
在整个推的项目中,消息是一个Message类,Message必须转换为字节传输,因此在Message类中实现了Serializable接口,在服务器中将Message编码传输到客户端中解码,就是这个环节发生了错误,这是因为服务端的Message类和客户端的Message类的包路径不一样,导致编码和解码不一致,自然会报异常!
三、异常解决
- 序列化的类最好加上serialVersionUID,免java.io.InvalidClassException,不同的JVM对serialVersionUID的计算方法可能不一样,就算类的定义和序列化后的对象是一致的,也可能从JVM-A里序列化后的对象到达JVM-B后,JVM-B认为 Class Invalid
- 服务端和客户端编解码的类的路径要一致
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)