首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件开发 >

求解序列化有关问题

2012-08-14 
求解序列化问题以下程序运行时出现如下错误,求解错误信息如下:java.io.NotSerializableException: ch04.Lo

求解序列化问题
以下程序运行时出现如下错误,求解
错误信息如下:
java.io.NotSerializableException: ch04.LogModel
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at ch04.LogFileOperate.writeLogFile(LogFileOperate.java:54)
at ch04.Cilent.main(Cilent.java:25)
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: ch04.LogModel
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1333)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at java.util.ArrayList.readObject(ArrayList.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1849)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at ch04.LogFileOperate.readLogFile(LogFileOperate.java:32)
at ch04.Cilent.main(Cilent.java:27)
Caused by: java.io.NotSerializableException: ch04.LogModel
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at java.util.ArrayList.writeObject(ArrayList.java:570)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1461)readlog====null

at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1392)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
at ch04.LogFileOperate.writeLogFile(LogFileOperate.java:54)
at ch04.Cilent.main(Cilent.java:25)



源代码如下:

package ch04;public class LogModel {private String logId;private String operateUser;private String operateTime;private String logContent;public String getLogId() {return logId;}public void setLogId(String logId) {this.logId = logId;}public String getOperateUser() {return operateUser;}public void setOperateUser(String operateUser) {this.operateUser = operateUser;}public String getOperateTime() {return operateTime;}public void setOperateTime(String operateTime) {this.operateTime = operateTime;}public String getLogContent() {return logContent;}public void setLogContent(String logContent) {this.logContent = logContent;}@Overridepublic String toString() {return "logID="+logId+",operateUser="+operateUser+",operateTime="+operateTime+",logContent="+logContent;}}

package ch04;import java.util.List;public interface LogFileOperateApi {public List<LogModel> readLogFile();public void writeLogFile(List<LogModel> list);}

package ch04;import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.ObjectInputStream;import java.io.ObjectOutputStream;import java.util.List;public class LogFileOperate implements LogFileOperateApi {private String logFilePathName = "AdapterLog.log";public LogFileOperate(String logFilePathName){if(logFilePathName!=null&&logFilePathName.trim().length()>0){this.logFilePathName = logFilePathName;}}@Overridepublic List<LogModel> readLogFile() {// TODO Auto-generated method stubList<LogModel> list = null;ObjectInputStream oin = null;try{File f = new File(logFilePathName);if(f.exists()){oin = new ObjectInputStream(new BufferedInputStream(new FileInputStream(f)));}list = (List<LogModel>) oin.readObject();}catch(Exception e){e.printStackTrace();}finally{try{if(oin!=null){oin.close();}}catch(IOException e){e.printStackTrace();}}return list;}@Overridepublic void writeLogFile(List<LogModel> list) {// TODO Auto-generated method stubFile f = new File(logFilePathName);ObjectOutputStream oout = null;try{oout= new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(f)));oout.writeObject(list);}catch(IOException e){e.printStackTrace();}finally{try{oout.close();}catch(IOException e){e.printStackTrace();}}}}

package ch04;import java.util.ArrayList;import java.util.List;public class Cilent {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubLogModel lml = new LogModel();lml.setLogId("0000000000001");lml.setOperateUser("admin");lml.setOperateTime("2011-7-9 11:47:25");lml.setLogContent("这仅仅是一个测试");List<LogModel> list = new ArrayList<LogModel>();list.add(lml);LogFileOperateApi api = new LogFileOperate("F:\\WorkSpaces\\shejimoshi\\AdapterLog.log");api.writeLogFile(list);List<LogModel> readLog  = api.readLogFile();System.out.println("readlog===="+readLog);}}
1 楼 ljs510 2011-07-09   解决方法:logmodel 需要序列化,public class LogModel implements Serializable 即可!!! 2 楼 Technoboy 2011-07-09   ljs510 写道解决方法:logmodel 需要序列化,public class LogModel implements Serializable 即可!!!
正解 3 楼 李史斌 2011-07-10   Technoboy 写道ljs510 写道解决方法:logmodel 需要序列化,public class LogModel implements Serializable 即可!!!
正解
4 楼 venus224 2011-07-10   Technoboy 写道ljs510 写道解决方法:logmodel 需要序列化,public class LogModel implements Serializable 即可!!!
正解

热点排行