文档章节

IOException while loading persisted sessions:java.io.EOFException

o
 osc_w9s1w4o0
发布于 2019/04/01 17:00
字数 1080
阅读 18
收藏 0

精选30+云产品,助力企业轻松上云!>>>

 EOFException:

  表示输入过程中意外地到达文件尾或流尾的信号,导致从session中获取数据失败。      

  这是由于tomcat上次非正常关闭时有一些活动session被持久化(表现为一些临时文件),在重启时,tomcat尝试去恢复这些session的持久化数据但又读取失败造成的。

  简而言之:Session持久化报错

为什么需要持久化:

      客户端访问了某个能开启会话功能的资源, web服务器就会创建一个与该客户端对应的HttpSession对象,每个HttpSession对象都要站用一定的内存空间。如果在某一时间段内访问站点的用户很多,web服务器内存中就会积累大量的HttpSession对象,消耗大量的服务器内存,即使用户已经离开或者关闭了浏览器,web服务器仍要保留与之对应的HttpSession对象,在他们超时之前,一直占用web服务器内存资源。

       web服务器通常将那些暂时不活动但未超时的HttpSession对象转移到文件系统或数据库中保存,服务器要使用他们时再将他们从文件系统或数据库中装载入内存,这种技术称为Session的持久化。

       将HttpSession对象保存到文件系统或数据库中,需要采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库中;将HttpSession对象从文件系统或数据库中装载如内存时,需要采用反序列化的方式,恢复HttpSession对象中的每个属性对象。所以存储在HttpSession对象中的每个属性对象必须实现Serializable接口

Session的持久化的作用:

       1.提高服务器内存的利用率,保证那些暂停活动的客户端在会话超时之前继续原来的会话

       2.在多台web服务器协同对外提供服务的集群系统中,使用Session的持久化技术,某台服务器可以将其中发生改变的Session对象复制给其他服务器。保证了在某台服务器停止工作后可以由其他服务器来接替它与客户端的会话

       3.在一个web应用程序重启时,服务器也会持久化该应用程序中所有HttpSession对象,保证客户端的会话活动仍可以继续。

       Tomcat使用Session Manager 类来管理Session的持久化,他提供了两个SessionManager类

       org.apache.catalina.session.StandardManager

       org.apache.catalina.session.PersistentManager

       StandardManager是tomcat默认使用的,在web应用程序关闭时,对内存中的所有HttpSession对象进行持久化,把他们保存到文件系统中。
  【注】所以报错也会体现为 org.apache.catalina.session.StandardManager doLoad

处理办法:

  找到 tomcat -- work : 删除work里的所有文件(懒人方法)

扩展知识点 : tomcat的work

  1.用tomcat作web服务器的时候,部署的程序在webApps下。tomcat有一个work目录,里面存放了页面的缓存,访问的jsp都会编译(从work里进入Catalina后的如localhost站点文件夹下的项目,我们可以看到那些jsp页面会被编译成应该是servlet文件,下次再来访问时,就直接运行servlet类就可以向客户端反应响应页面了,第一次访问时会比较慢,是因为新发布上去的页面在第一个人访问时,会先编译成servlet文件,所以慢了,一旦编译好,那么除非jsp页面修改,不然下次访问直接运行servlet就可以响应用户,所以快),编译后的文件都会存储在work目录下。而tomcat显示的目录,都会从这个缓存里找编译后的jsp对应的class文件。所以当清空了work目录后,该过程将会从新来过。

  2.在tomcat的conf配置文件夹下的server.xml文件里配置了Host name后,就会在conf下的Catalina文件夹和work下的Catalina文件下建立站点名称的文件夹,项目每次发布都会放入来,也会记录到conf下的Catalina文件夹的配置文件里去。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误

java.io.EOFException java.io.ObjectInputStream$PeekInputStream.readFully 错误 Tomcat启动后报:IOException while loading persisted sessions: java.io.EOFException错误 - IOExceptio......

风中帆
2016/08/26
281
0
IOException while loading persisted sessions:

严重: IOException while loading persisted sessions:java.io.EOFException java.io.EOFException atjava.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2281) a......

yuanfy008
2015/08/18
80
0
tomcat不能正常启动: java.io.EOFException

转:Tomcat:IOException while loading persisted sessions: java.io.EOFException解决手记 一直用tomcat一段时间都正常无事,最近一次启动tomcat就发生以下异常: 严重: IOException while...

菠萝啊哈哈
2013/10/10
1.5K
0
严重: Exception loading sessions from persistent storage

2011-11-24 10:05:00| 分类: java学习|举报|字号 订阅 当tomcat启动的时候出现下面错误: [ERROR] org.apache.catalina.session.ManagerBase - IOException while loading persisted sessio......

thinkyoung
2015/02/12
0
0
异常,oracle10g安装,oracle环境变量设置

IOException while loading persisted sessions: java.io.EOFException异常的解决办法 严重: IOException while loading persisted sessions: java.io.EOFException java.io.EOFException a......

血刃修罗
2016/05/11
1
0

没有更多内容

加载失败,请刷新页面

加载更多

科技人文丨玻璃心:承受阈值与表达

大家好,我是SKODE。 有趣的灵魂,聊科技人文。 本系列博客地址:传送门 本文转载自B站:安慰记传送门 玻璃心是网络用语,意思是: 对负面事件的接受度很低 还有对别人可能给出的负面评价非常...

osc_u9mt0sus
16分钟前
16
0
迅睿CMS 游客不允许上传附件

游客不允许上传附件 迅睿CMS系统:https://www.xunruicms.com/ 本文档原文地址:https://www.xunruicms.com/doc/752.html...

迅睿CMS-PHP开源CMS程序
16分钟前
7
0
代理,注解,接口和实现类的小测验

* retention : 保留* policy : 策略 ps : 简单测试了一下手写代理,jdk动态代理,和cglib动态代理,根据其不同的结果分析其原理 一:测试目的 主要想看一下不同的代理模式对于目标类中方法上注...

岁一
17分钟前
0
0
V-Ray 5 For 3ds Max 正式发布:超越渲染 - 知乎

15个新功能,V-Ray5助你时间更节省,渲染更出色! 作者:ChaosGroup VRay 5 For 3ds Max 已正式发布! 2分钟视频,抢先预览新功能↓ 知乎视频 www.zhihu.com V-Ray 5 for 3ds Max 新增功能 ...

osc_o9u1um45
17分钟前
0
0
毕业的笑容和悲伤永远是校园的回忆

校园的风轻轻的拂过我的脸庞,风儿显得更加凉爽, 开满火红的凤凰树,染遍了校园的每个角落, 晚上那枝头蝉儿的竞相鸣奏,唱满了令人不舍的毕业歌, 它们彷彿告诉了我们要毕业了。 毕业典礼那...

瑾123
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部