`
huiqinbo
  • 浏览: 344392 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

java.io.NotSerializableException.

阅读更多

java.io.NotSerializableException.
在重启Tomcat 5时发现报此错误.
查阅后发现tomcat 5之后重启服务后tomcat会尝试恢复session.
解决方法:
下面是方法一(通过配置,使tomcat重启后不重新恢复session):
在关闭和重启Tomcat 5时, tomcat 会试图 serialize存在的session资源. 如果 sessions中相关的对象没有实现 serializable 接口, 就会出现Cannot serialize session attribute XXX  for  异常
我实际运行的日文log如下:
セッション 257CC78C5D3979DFCDA8F7BCE34CC5D8 のためにセッション属性 MasterSearchResult をシリアライズできません
java.io.NotSerializableException: ...........
如果你不想看到该异常, 也不想保存session. 那么你可以在项目部署描述文件中(如. test.xml,)(instead of just exploding the war)  的   tags中间 加上 :
saveOnRestart="false"/>
这样 tomcat 在关闭的时候就不会保存session资源了.

你也可以在server.xml中指定上面的值. 这也所有的程序都使用这个设置了.
(引自http://www.blogjava.net/51AOP/archive/2006/09/27/71662.html)

方法二:
既然报没有序列化的错误,那我们就把我们的对象序列化了就是了,实现起来也很简单,就是把要放入session的对象序列化即可
public class YourClassName implements java.io.Serializable{
}
其他内容都完全不需要变.呵呵

0
1
分享到:
评论

相关推荐

    java 中序列化NotSerializableException问题解决办法

    Java 中序列化 NotSerializableException 问题解决办法 Java 中序列化 NotSerializableException 问题是 Java 开发中常见的问题之一。 NotSerializableException 是 Java 中的一个异常,它发生在尝试序列化一个不...

    7.7初始mybatis个人笔记.docx

    在【描述】中提到的问题,当你尝试启用二级缓存时,如果实体类没有实现`Serializable`接口,MyBatis在尝试序列化对象存储到缓存时会抛出`java.io.NotSerializableException`。这是因为Java的序列化机制要求可序列化...

    aesjava源码-THIS-.-IS-GREAT-:////IntelliJIDEA从.class文件重新创建的源代码//(由Fernflo

    导入java.io.NotSerializableException; 导入java.io.ObjectStreamException; 导入java.io.Serializable; 导入java.security.AccessController; 导入java.security.AuthProvider; 导入java.security....

    struts2 依赖核心包 --xwork 源文件

    Struts2是一个强大的Java web应用程序框架,它基于MVC(Model-View-Controller)设计模式,为开发人员提供了构建高效、可维护性高的Web应用的工具。XWork是Struts2的核心组件,它负责处理Action的业务逻辑和控制流程...

    java中的序列号和反序列化.doc

    在Java中,要实现对象的序列化,类必须实现`java.io.Serializable`接口。这个接口没有任何方法,仅仅作为一个标记,告诉Java虚拟机(JVM)这个类是可序列化的。 有两种主要的序列化方式: 1. 实现`Serializable`...

    java自动序列化

    3. `java.io.NotSerializableException`: 当尝试序列化一个未实现Serializable接口的对象时抛出的异常。 4. `sun.misc.BASE64Encoder`和`sun.misc.BASE64Decoder`(非标准API):用于将字节数组编码为Base64字符串,...

    OCJP题库JAVA考试

    在题目中,由于`Tree`类没有实现`Serializable`接口,所以在尝试序列化`Forest`实例时,会抛出`java.io.NotSerializableException`。 2. **对象的序列化与反序列化**:在问题2中,正确的序列化和反序列化代码是选项...

    java session

    java.io.NotSerializableException: xxxxxx ``` 3. **解决方法** - **方法一**: 配置Tomcat不在关闭时保存Session数据。 在`server.xml`文件中的`<Context>`标签下添加以下内容: ```xml ...

    Serialization:Java中的序列化

    Java还提供了`java.io.ObjectStreamClass`和`java.io.ObjectStreamConstants`等辅助类来处理序列化相关的元数据,以及`java.io.NotSerializableException`和`java.io.OptionalDataException`等异常,它们分别在对象...

    OCJP认证-3期(PX017) 面向对象程序设计-IO处理.doc

    因此,在尝试序列化`Forest`对象时,会抛出`java.io.NotSerializableException`,因为`Tree`不支持序列化。因此,运行时会出现异常,答案是B。 ```java class Forest implements Serializable { private Tree tree...

    14.序列化.doc

    在Java中,如果一个对象需要支持序列化,那么该对象的类必须实现`java.io.Serializable`接口。这个接口是一个标识接口,即不包含任何方法,它的作用就是标记一个类的对象是可序列化的。 【序列化特点】 1. **仅...

    通过实例了解java序列化机制

    要实现序列化的类必须实现的java.io.Serializable或java.io.Externalizable接口,否则将产生一个NotSerializableException。该接口内部并没有任何方法,它只是一个"tagging interface",仅仅"tags"它自己的对象是一...

    SCJP 310-055 题库5 输入输出流

    在比较`java.io.BufferedWriter`和`java.io.FileWriter`时,题目询问哪一个功能仅存在于其中一个类中。选项E指出写入行分隔符到流是`BufferedWriter`独有的功能,这是正确的。`BufferedWriter`提供了一个`newLine()`...

    Java对象的深克隆与浅克隆详解.zip(wcb2003)

    可以使用`java.io.ObjectOutputStream`和`java.io.ObjectInputStream`来实现: ```java public class MyClass implements Serializable { private MyObject reference; // ...其他属性和方法... public MyClass...

    关于Java对象序列化您不知道的5件事Java开发Java

    为了使一个Java对象能够被序列化,该类必须实现`java.io.Serializable`接口。虽然这个接口没有任何方法,但它的存在告诉JVM这个类的实例可以被转换为字节流。如果一个类没有实现这个接口,尝试序列化其对象时会抛出...

    Java将对象保存到文件中/从文件中读取对象的方法

    例如,如果你有一个`HashMap, Object>`,并且`Object`没有实现`Serializable`,那么在尝试序列化时会抛出`java.io.NotSerializableException`异常。 **二、对象的反序列化** 反序列化是将字节流转换回对象的过程。...

    Java中常见的异常以及解决方案

    当尝试通过`java.io.ObjectOutputStream`序列化一个未实现`Serializable`接口的对象时,会引发`NotSerializableException`。 **原因分析:** 序列化是将对象状态转换为可以持久化或通过网络传输的形式的过程。Java...

    Java对象序列化详细解析.doc

    在Java中,对象序列化是通过实现`java.io.Serializable`接口来实现的。 **Serializable接口**: `Serializable`接口是一个标记接口,它没有定义任何方法。当一个类实现了这个接口,就意味着该类的对象可以被序列化...

    SCJP 题库

    问题7比较了`java.io.BufferedWriter`和`java.io.FileWriter`的能力。`BufferedWriter`除了提供基本的写入功能外,还支持行分隔符的写入,即`newLine()`方法,这是`FileWriter`所不具备的功能。 ### 8. 字符串操作 ...

Global site tag (gtag.js) - Google Analytics