反序列化ObjectOutputStream.readObject()出现ClassNotFoundException

来源:互联网 发布:握奇数据借壳上市 编辑:程序博客网 时间:2024/05/17 01:35

跨进程通信时,将序列化的对象的对象存入文件,两个进程通过读/写同一个文件来交换数据,达到通讯的效果。

中间遇到一个问题,就是在另一个进程反序列化的时候,报ClassNotFoundException异常。


原因是两进程序列化类的包名不同


进程一User类的包名是com.mrcai.activitytask,进程一User类的包名是com.mrcai.act_act,导致出错

解决办法有两种:

一、包名改成一样的

很简单,但是不同进程间要求包名相同的话,有点变态;

二、继承ObjectSreamClass,重写readClassDescriptor()方法



其中“com.mrcai.activity”和“com.mrcai.act_act”更换成你项目的包名,调用MyObjectInputStream的readObject()就ok了。

0 0
原创粉丝点击