我试图在项目A中成功地将FilerDetailsExcelFileBean (项目A包A)类型的对象列表转换为字节array.After转换。我将字节数组传递到web服务,然后再将字节数组转换为项目B.In中的FilerDetailsExcelFileBean (项目B包B)类型的对象列表,以便从字节数组中获得对象列表,我在两个项目中创建了相同的文件FilerDetailsExcelFileBean,因为B包由于设计模式无法导入包A文件。
代码将ListOfObject转换为字节数组:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(List);
byte[] bytes = bos.toByteArray();代码将字节数组转换为ListOfObject:
ByteArrayInputStream bis = new ByteArrayInputStream(filerMarkingFile.getRequestFile());
ObjectInputStream ois = new ObjectInputStream(bis);
List<FilerDetailsExcelFileBean> f = (List<FilerDetailsExcelFileBean>) ois.readObject();错误是: FilerDetailsExcelFileBean classNotFound异常
注意:类型的FilerDetailsExcelFileBean文件列表在不同的项目中--A(将ListOfObject转换为字节数组的代码:)和FilerDetailsExcelFileBean文件在不同的项目中-B(代码将字节数组转换为ListOfObject:).and FilerDetailsExcelFileBean由于某些原因无法导入项目-B。
我知道这个问题(问题是当我们将arrayList转换为字节数组时,使用的是不同的持久文件,当我们将它转换回列表ob对象时,使用的是不同的持久文件),但是我需要解决这个问题,problem.What是解决这个问题的最佳方法。
发布于 2016-10-03 11:31:19
这是行不通的,packageA.FilerDetailsExcelFileBean与packageB.FilerDetailsExcelFileBean不是同一个类,因此不能序列化第一个类,然后将其反序列化为第二个类。类名和类的布局是相同的这一事实是不够的。如果您想用Java序列化来完成这个任务,那么类必须完全相同--它们也必须在同一个包中。
而不是使用Java序列化,而是使用另一种机制--例如,将对象转换为JSON或XML,并在另一边解析它。
https://stackoverflow.com/questions/39830447
复制相似问题