在servlet会话和java.io.NotSerializableException中保存对象

在servlet会话和java.io.NotSerializableException中保存对象,java,session,servlets,Java,Session,Servlets,这意味着此对象无法在硬盘上持久化 这是否意味着保留未实现“可序列化”的会话内对象不安全 我还没有听说在会话对象中保存不可序列化的对象有限制 这仅仅意味着Tomcat将永远把它们保存在内存中,对吗 这是否意味着这样做不安全 保持会话中不包含的对象 实现“可序列化” 没错,是的 然而,如果许多servlet容器实际上不需要进行任何序列化,那么它们可以让您逍遥法外 例如,Tomcat不关心会话属性是否可序列化,除非启用会话复制。它需要能够序列化属性,以便将它们复制到集群中的其他服务器 在您的情况下,容

这意味着此对象无法在硬盘上持久化

这是否意味着保留未实现“可序列化”的会话内对象不安全

我还没有听说在会话对象中保存不可序列化的对象有限制

这仅仅意味着Tomcat将永远把它们保存在内存中,对吗

这是否意味着这样做不安全 保持会话中不包含的对象 实现“可序列化”

没错,是的

然而,如果许多servlet容器实际上不需要进行任何序列化,那么它们可以让您逍遥法外

例如,Tomcat不关心会话属性是否可序列化,除非启用会话复制。它需要能够序列化属性,以便将它们复制到集群中的其他服务器


在您的情况下,容器似乎正在尝试将会话数据持久化到磁盘,这同样需要序列化。

不仅当对象持久化到硬盘时,而且当对象传输到分布式环境中的另一个节点时,都会尝试序列化。尽管servlet规范没有规定对象是可序列化的,但这样做并不是不好的做法。

servlet规范定义了分发会话的规则(2.5规范实际上没有描述如何为分布式环境以外的任何环境持久化会话,但语义应该是相同的)。在这种情况下,通常最容易实现
Serializable
。如果您希望收到这些事件的通知,也可以使用该界面。

可能重复的事件您可以自己关闭另一个吗?
 SEVERE: IOException while loading persisted sessions:
         java.io.WriteAbortedException:
         writing aborted; java.io.NotSerializableException: