07-12
28
Cannot serialize session attribute--问题的解决
作者:Java伴侣 日期:2007-12-28
java.io.NotSerializableException.
在重启Tomcat 6时发现报此错误.
查阅后发现tomcat 5之后重启服务后tomcat会尝试恢复session.
下面是方法一(通过配置,使tomcat重启后不重新恢复session):
Tomcat 问题: Cannot serialize session attribute XXX for ..的解决办法
在关闭和重启Tomcat 5时, tomcat 会试图 serialize存在的session资源. 如果sessions中相关的对象没有实现 serializable 接口, 就会出现Cannot serialize session attribute XXX for 异常.
如果你不想看到该异常, 也不想保存session. 那么你可以在项目部署描述文件中(如. test.xml,)(instead of just exploding the war) 的 <Context> tags中间 加上 :
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="false"/>
这样 tomcat 在关闭的时候就不会保存session资源了.
你也可以在server.xml中指定上面的值. 这也所有的程序都使用这个设置了.
试试看.
方法二:
既然报没有序列化的错误,那我们就把我们的对象序列化了就是了,实现起来也很简单,就是把要放入session的对象序列化即可
public class YourClassName implements java.io.Serializable{
}
其他内容都完全不需要变.呵呵
在重启Tomcat 6时发现报此错误.
查阅后发现tomcat 5之后重启服务后tomcat会尝试恢复session.
下面是方法一(通过配置,使tomcat重启后不重新恢复session):
Tomcat 问题: Cannot serialize session attribute XXX for ..的解决办法
在关闭和重启Tomcat 5时, tomcat 会试图 serialize存在的session资源. 如果sessions中相关的对象没有实现 serializable 接口, 就会出现Cannot serialize session attribute XXX for 异常.
如果你不想看到该异常, 也不想保存session. 那么你可以在项目部署描述文件中(如. test.xml,)(instead of just exploding the war) 的 <Context> tags中间 加上 :
<Manager className="org.apache.catalina.session.PersistentManager"
saveOnRestart="false"/>
这样 tomcat 在关闭的时候就不会保存session资源了.
你也可以在server.xml中指定上面的值. 这也所有的程序都使用这个设置了.
试试看.
方法二:
既然报没有序列化的错误,那我们就把我们的对象序列化了就是了,实现起来也很简单,就是把要放入session的对象序列化即可
public class YourClassName implements java.io.Serializable{
}
其他内容都完全不需要变.呵呵
评论: 0 | 引用: 0 | 查看次数: 740
发表评论