在下在写有关程序时,出现了下面的tomcat错误,由于在下写的代码较多,又不懂这些错误代表什么意思,于是在下不知道是错在了
哪里,请知道的帮帮忙给分析一写,这种错误通常是什么原因造成的!!!2008-4-1 21:09:00 org.apache.catalina.session.StandardSession writeObject
警告: Cannot serialize session attribute shopcar for session 5232F3C3F0DED988F8CF2B932E6CEA5A
java.io.NotSerializableException: my.lx.Allorder
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
at java.util.Vector.writeObject(Vector.java:1018)
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:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1468)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:938)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:516)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:462)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:666)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4358)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3018)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1277)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558)
at java.lang.Thread.run(Thread.java:595)
2008-4-1 21:09:01 org.apache.catalina.session.StandardManager doLoad
严重: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: my.lx.Allorder
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: my.lx.Allorder
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1309)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1634)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1908)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1832)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1719)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1305)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:348)
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1392)
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:921)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:393)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:320)
at org.apache.catalina.session.StandardManager.start(StandardManager.java:636)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4161)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3024)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:432)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1277)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1569)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1578)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1558)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.io.NotSerializableException: my.lx.Allorder
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1081)
at java.io.ObjectOutputStream.writeArray(ObjectOutputStream.java:1251)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1375)
at java.io.ObjectOutputStream.defaultWriteObject(ObjectOutputStream.java:391)
at java.util.Vector.writeObject(Vector.java:1018)
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:585)
at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:917)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1339)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1290)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1079)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:302)
at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1468)
at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:938)
at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:516)
at org.apache.catalina.session.StandardManager.unload(StandardManager.java:462)
at org.apache.catalina.session.StandardManager.stop(StandardManager.java:666)
at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4358)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3018)
... 7 more

解决方案 »

  1.   

    不知道是不是环境变量的问题
    Tomcat的环境变量:在“我的电脑”上点右键—>“属性”—>“高级”—> “环境变量(N)”。  新建系统变量CATALINA_HOME:D:\jakarta-tomcat-5.0.30  在系统变量CLASSPATH的值的后面加入:%CATALINA_HOME%\common\lib;  在系统变量Path的值中"%JAVA_HOME%\bin;"的后面加入以下内容:%CATALINA_HOME%\bin;
      

  2.   

    没有序列化?继承下Serializable(好像这个名字)看看可以不?楼主是用object的输入输出流方式吗?
      

  3.   

    看看你的程序里往session里存了什么东西?session.setAttribute()这样的语句,如果所存的对象或集合中的对象是你自己写的类的对象,注意让这个类implements java.io.Serializable,
    因为tomcat在关闭时会把没有超时的session写进硬盘,下次启动时再加载进来,防止正在访问的用户因服务器重启而丢失信息,如果session里存了你写的类的对象,那么这个对象也要序列化进硬盘,所以你不实现java.io.Serializable接口,就会在序列化和读取时出现问题。
      

  4.   

    是session的持久化问题,在下明白了
    谢谢了!
      

  5.   

    是lz没有编译完全造成的原因你把整个工程重新编译一下,如果是在eclipse下的话,你把WEB-INF/classes/下全部删除掉,然后清理工程。