这是跟踪的相关部分:
SCHWERWIEGEND: Exception loading sessions from persistent storagejava.io.WriteAbortedException: writing aborted;java.io.NotSerializableException:
org.dhbw.stg.wwi2008c.mopro.ui.viewscoped.MachineReservationListBean
…
at
org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1576)
at
org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:1059)
at
org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:284)
at
org.apache.catalina.session.StandardManager.load(StandardManager.java:204)
at
org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:465)
at
org.apache.catalina.util.Lifecyclebase.start(Lifecyclebase.java:140)
…
这个问题与您链接的问题所涉及的问题不同。默认情况下,当Tomcat关闭时,它将序列化
HttpSession到磁盘,然后在启动时从磁盘重新加载,以便最终用户可以继续浏览器会话而不会丢失任何会话数据。
在这种情况下,任何会话属性都应实现
Serializable。默认情况下,JSF视图状态存储在会话中,包括所有适当的视图范围的Bean。他们还需要实施
Serializable以使Tomcat关闭/重新启动。
从技术上讲,您可以忽略它。如果尚不存在,JSF仍将重新创建会话/视图范围的bean。但是,最终用户将无法继续使用相同的会话/视图范围的数据。当会话不包含任何不可序列化的对象时,将不会发生这些异常。这就是为什么它“有时”有效的原因。
如果您想完全 禁用 会话持久性,以免被那些异常/警告所困扰,那么您需要向该Web应用程序的元素中添加一个
<Manager>具有 空
pathname属性的
<Context>元素。
<Context ... > <Manager pathname="" /></Context>
这基本上指示使用Tomcat 没有 会话管理器在所有。
也可以看看:
- Tomcat 7.0配置参考-
Context
容器 - java.io.WriteAbortedException:编写中止;java.io.NotSerializableException



