java.io.NotSertalizableException解决方案

具体原因:

tomcat 5及后续版本在重启服务时候tomcat会尝试恢复上一次的session.

解决方法:

方法一(通过配置,使tomcat重启后不重新恢复session):

在 关闭和重启Tomcat 5时, tomcat 会试图 serialize存在的session资源. 如果 sessions中相关的对象没有实现 serializable 接口, 就会出现Cannot serialize session attribute XXX for 异常

java.io.NotSerializableException: ...........

如果你不想看到该异常, 也不想保存session. 那么你可以在项目部署描述文件中(如. test.xml,)(instead of just exploding the war) 的    <Context> tags中间 加上 :

<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false">
       <Store className="org.apache.catalina.session.FileStore"/>
</Manager>

Manager元素可以嵌套在Context组件中。如果不包含它,会自动创建一个缺省的Manager配置,这对大多数需求都是足够的。
详见Tomcat服务器配置参考http://www.cnjsp.org/document/user/tuman/manager.html

这样 tomcat 在关闭的时候就不会保存session资源了.

你也可以在server.xml中指定上面的值. 这也所有的程序都使用这个设置了.

方法二:

既然报没有序列化的错误,那我们就把我们的对象序列化了就是了,实现起来也很简单,就是把要放入session的对象序列化即可

public class YourClassName implements java.io.Serializable{
}

原文地址:http://jahunter.javaeye.com/blog/319946

posted @ 2012-11-04 08:22  zhenxu.liu  阅读(407)  评论(0编辑  收藏  举报