運行tomcat下面的 ssh項目,啟動,打開某頁面(讓session起作用),停止;再啟動,有可能會報類似如下的錯誤:
org.apache.catalina.session.StandardManager doLoad
嚴重: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxxxx
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxxxx
org.apache.catalina.session.StandardManager start
嚴重: Exception loading sessions from persistent storage
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxxx
原因是:tomcat停止時,保存session資源,然后在重啟服務后,會嘗試恢復session。
解決辦法一:
配置tomcat在關閉的時候就不去保存session資源。
在server.xml中Context下添加如下的內容:
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
再進行啟動停止等操作,報如下的類似錯誤:
org.apache.catalina.session.PersistentManagerBase start
嚴重: No Store configured, persistence disabled
原因是添加的東東少添加了一點點兒。
解決辦法:
修改剛才添加的 <Context>中<Manager> 元素:
將
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false"/>
改為:
<Manager className="org.apache.catalina.session.PersistentManager" saveOnRestart="false">
<Store className="org.apache.catalina.session.FileStore"/>http://www.jinyuanbao.cn
</Manager>
即可解決該問題。
解決辦法二:
將那些需要放在session的類進行序列化。
也就是讓類實現接口java.io.Serializable即可。