情景再现:
系统tomcat在启动中,直接替换class文件。然后再重启tomcat的时候就报错误:
java.io.EOFException
如下图:
请点击此处输入图片描述
经过多方百X:
EOFException表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败。异常是tomcat本身的问题,由于tomcat上次非正常关闭时有一些活动session 被持久化(表现为一些临时文件),在重启时,tomcat尝试去恢复这些session的持久化数据但又读取失败造成的。此异常不影响系统的使用。 因为保存在硬盘上的session数 据读取失败,问题似乎不大,但是如果不处理一下,每次启动都会出现这个问题。
请点击此处输入图片描述
回想确实是这样的。于是果断找到tomcat对应位置:
请点击此处输入图片描述
看到果然是有SESSIONS.set这个东西。
刚开始还不相信,再次关掉tomcat进行测试:
请点击此处输入图片描述
结果还是提示: java.io.EOFException
于是果断删除SESSIONS.set这个东西。
重新启动tomcat:
请点击此处输入图片描述
可以看到正常启动。
OK。问题解决。