在重启Tomcat 5时发现报此错误.
查阅后发现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{
}
其他内容都完全不需要变.