Tomcat启动报EOFException异常

最近用eclipse启动tomcat时老报EOFException异常,虽然不影响使用,但总感觉别扭,就想办法解决了一下。

后分析了一下,原来是tomcat没正常关闭,俺基本每次都是通过任务管理器杀死线程的,主要是项目中一些资源没释放,正常情况下tomcat是不会关闭的,所以只有杀进程了。

由于tomcat没正常关闭,所以它在关闭时做的处理工具,比如session持久化,就有可能没做完。此处异常就是这个问题。


【原因分析】 
      EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败。异常是tomcat本身的问题,由于tomcat上次非正常关闭时有一些活动session         被持久化(表现为一些临时文件),在重启时,tomcat尝试去恢复这些session的持久化数据但又读取失败造成的。此异常不影响系统的使用。 因为保存在硬盘上的session数       据读取失败,问题似乎不大,但是如果不处理一下,每次启动都会出现这个问题。 


【解决办法】 
      将work下面的文件清空,主要是*.ser文件,或者只是删除掉session.ser亦可。 
      如果正常关闭服务端,该文件是自动删除的。 
      work\Catalina\localhost\yourProjectName\SESSIONS.ser删除。如果正常关闭服务端,该文件是自动删除的。 
     注:yourProjectName 是你当前正在工作的Web项目名称。 
     考虑到每个人的tomat的工作目录不同,建议在“搜索”功能中找到你的SESSIONS.ser文件,而且只需要删除..\yourProjectName\下的SESSIONS.ser即可。 

你可能感兴趣的:(tomcat异常)