故障现象:上午在eclipse中调试程序时,tomcat启动服务,报 IOException while loading persisted sessions: java.io.EOFException 。
IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2298)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2767)
at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:798)
at java.io.ObjectInputStream.<init>(ObjectInputStream.java:298)
at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246)
异常原因是:tomcat有过非正常关闭动作,这是tomcat将活动的session保存到了临时文件(SESSIONS.ser)中,在启动时tomcat尝试去恢复这些保存的session数据,读取失败所致,但不影响tomcat的正常启动和使用。
解决方法:找到SESSIONS.ser,删除SESSIONS.ser这个临时文件重新启动即可。
一般情况下,该文件在tomcat目录下的work\Catalina\localhost\项目名\SESSIONS.ser,如果是eclipse中tomcat,默认在eclipse的工作空间下,如C:\workspace\eclipse4.4.metadata.plugins\org.eclipse.wst.server.core\tmp4\work\Catalina\localhost\项目名\SESSIONS.ser。