我们在flex中有一个应用程序,它部署在负载平衡的Tomcat 6.0上(有一个负载平衡器,它将请求传递给2个tomcat服务器)。
在访问应用程序时,我们得到了一个404错误。在挖掘tomat日志时,我们发现了以下错误
日志跟踪
2013-01-17 10:42:54,148 org.apache.catalina.session.ManagerBase - IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: bean.Login
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: bean.Login
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
..
2013-01-17 10:43:04,135 org.apache.catalina.session.ManagerBase - Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: bean.Login
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1332)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
…
Caused by: java.io.NotSerializableException: bean.Login
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)致
造成此错误的可能原因是Tomcat试图在关闭所有活动会话时序列化所有活动会话的完整对象图,然后尝试在启动时将其还原。关键是Tomcat使用“普通”java对象序列化,它要求所有对象都是可序列化的。
我们在Spring中映射了Login,如下所示
<bean id="currLogin" class="bean.Login" scope="session">
<aop:scoped-proxy />
</bean>补救
短期
我们能够登录到应用程序后,没有错误弹出服务器。
长期
请让我们知道解决这个问题的方法?
发布于 2013-01-22 08:52:19
我相信,如果您希望Tomcat在重新启动之间的会话中持久化对象,则需要实现Serializable接口。你已经回答了你自己的问题了。
这取决于您是否希望它们在重新启动之间持续存在。
https://stackoverflow.com/questions/14454353
复制相似问题