Exception loading sessions from persistent storage
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2228)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2694)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:761)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:277)
at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:56)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:384)
at org.apache.catalina.session.StandardManager.load(StandardManager.java:343)
at org.apache.catalina.session.StandardManager.start(StandardManager.java:657)
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499)
at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:315)
at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:635)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4290)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:701)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
at org.apache.catalina.core.StandardService.start(StandardService.java:480)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
分析: session未逾時的情況下,伺服器關閉的時候會被序列化為工程名\SESSIONS.ser,tomcat 啟動的時候再載入進來,EOFException表示tomcat上次關閉時還有一些活動串連,所以在重啟時tomcat嘗試去恢複這些session,但是在輸入過程中意外地到達檔案尾或流尾的訊號,導致從session中擷取資料失敗。異常是tomcat本身的問題,由於tomcat上次非正常關閉時有一些活動session被持
久化(表現為一些臨時檔案),在重啟時,tomcat嘗試去恢複這些session的持久化資料但又讀取失敗造成的。此異常不影響系統的使用。
解決辦法:將 tomcat_home\work\Catalina\localhost\『工程名』\SESSIONS.ser刪除。如果正常關閉服務端,該檔案是自 動刪除的。考慮到每個人的tomat的工作目錄不同,建議在“搜尋”功能中找到你的SESSIONS.ser檔案,而且只需要刪 除..\yourProjectName\下的SESSIONS.ser即可。
最簡單的辦法是work下的全部刪除,然後重啟tomcat。
下面是有關tomcat 的work目錄的知識:
1 用tomcat作web伺服器的時候,部署的程式在webApps下,這些程式都是編譯後的程式(發布到tomcat的項目裡含的類,會被編譯成.class後才發布過來,源檔案沒有發布過來,但這裡的jsp沒有經編譯的)。tomcat有一個work目錄,裡面存放了頁面的緩衝,訪問的jsp都會編譯(從work裡進入Catalina後的如localhost網站資料夾下的項目,我們可以看到那些jsp
頁面會被編譯成應該是servlet檔案,下次再來訪問時,就直接運行servlet類就可以向用戶端反應響應頁面了,所以有的部落格說第一次訪問時會比較 慢,是因為新發布上去的頁面在第一個人訪問時,會先編譯成servlet檔案,所以慢了,一旦編譯好,那麼除非jsp頁面修改,不然下次訪問直接運行 servlet就可以響應使用者,所以快),編譯後的檔案都會儲存在work目錄下。而tomcat顯示的目錄,都會從這個緩衝裡找編譯後的jsp對應的class檔案。所以當清空了work目錄後,該過程將會從新來過。
有的時候會遇到一個問題,就是修改後的頁面在tomcat啟動並執行時候顯示不了修改後的痕迹。這個時候刪除work目錄下對應的專案檔夾,重新啟動tomcat就可以了。
2 在tomcat的conf設定檔夾下的server.xml檔案裡配置了Host name後,就會在conf下的Catalina檔案夾和work下的Catalina檔案下建立網站名稱的檔案夾,項目每次發布都會放入來,也會記錄到conf下的Catalina檔案夾的設定檔裡去。
from:http://getspring.blog.163.com/blog/static/115300609201073010022281/