`
guzizai2007
  • 浏览: 358823 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

IOException while loading persisted sessions: java.io.WriteAbortedException:

 
阅读更多

异常信息:

严重: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.xxt.user.bean.FunctionBean
java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: com.xxt.user.bean.FunctionBean
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1303)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
	at java.util.ArrayList.readObject(ArrayList.java:591)
	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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:919)
	at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1813)
	at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1713)
	at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1299)
	at java.io.ObjectInputStream.readObject(ObjectInputStream.java:339)
	at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1509)
	at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:998)
	at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:395)
	at org.apache.catalina.session.StandardManager.load(StandardManager.java:322)
	at org.apache.catalina.session.StandardManager.start(StandardManager.java:649)
	at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:446)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4631)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601)
	at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:675)
	at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:601)
	at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502)
	at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:840)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463)
	at org.apache.catalina.core.StandardService.start(StandardService.java:525)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:754)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:595)
	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:289)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Caused by: java.io.NotSerializableException: com.xxt.user.bean.FunctionBean
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1075)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
	at java.util.ArrayList.writeObject(ArrayList.java:569)
	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 java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:890)
	at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1333)
	at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1284)
	at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1073)
	at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:291)
	at org.apache.catalina.session.StandardSession.writeObject(StandardSession.java:1585)
	at org.apache.catalina.session.StandardSession.writeObjectData(StandardSession.java:1015)
	at org.apache.catalina.session.StandardManager.doUnload(StandardManager.java:529)
	at org.apache.catalina.session.StandardManager.unload(StandardManager.java:470)
	at org.apache.catalina.session.StandardManager.stop(StandardManager.java:679)
	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4882)
	at org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:936)
	at org.apache.catalina.startup.HostConfig.undeployApps(HostConfig.java:1359)
	at org.apache.catalina.startup.HostConfig.stop(HostConfig.java:1330)
	at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:326)
	at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142)
	at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1098)
	at org.apache.catalina.core.ContainerBase.stop(ContainerBase.java:1110)
	at org.apache.catalina.core.StandardEngine.stop(StandardEngine.java:468)
	at org.apache.catalina.core.StandardService.stop(StandardService.java:604)
	at org.apache.catalina.core.StandardServer.stop(StandardServer.java:788)
	at org.apache.catalina.startup.Catalina.stop(Catalina.java:662)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:629)
	... 6 more
2013-2-28 4:20:12 org.apache.catalina.session.StandardManager start
严重: Exception loading sessions from persistent storage

 

项目关闭后重启有时会报这个错:

解决办法:

public class FunctionBean implements Serializable//实现Seriablizable接口

 

tomcat6 中关闭服务会自动把session持久化 
存储在work目录下的 一个session.ser ,如图:


 

 

引自:http://caar369.blog.51cto.com/6449006/1127950

 

为什么需要持久化

客户端访问了某个能开启会话功能的资源, 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

StandardManagertomcat默认使用的,在web应用程序关闭时,对内存中的所有HttpSession对象进行持久化,把他们保存到文件系统中。默认的存储文件为:

<tomcat 安装目录>/work/Catalina/<主机名>/<应用程序名>/sessions.ser

PersistentManagerStandardManager更为灵活,只要某个设备提供了实现org.apache.catalina.Store接口的驱动类,PersistentManager就可以将HttpSession对象保存到该设备

 

 

 

  • 大小: 39.1 KB
分享到:
评论
发表评论

文章已被作者锁定,不允许评论。

相关推荐

    解决删除目录提示:System.IO.IOException: 目录不是空的。

    在编程过程中,尤其是在使用C#进行文件系统操作时,可能会遇到这样一个问题:当你尝试删除一个目录,系统返回“System.IO.IOException: 目录不是空的”错误。这意味着该目录下仍有文件或子目录存在,因此无法直接...

    Eclipse 进行 ANT 时错误 Javadoc failed java.io.IOException Cannot run program javadoc

    在Eclipse集成开发环境(IDE)中使用ANT进行项目构建时,可能会遇到特定的错误提示:“Javadoc failed java.io.IOException Cannot run program javadoc”。这个错误信息表明在生成Java文档的过程中出现了问题,具体...

    java.io.FileNotFoundException: *****(Too many open files)

    在Java编程中,"java.io.FileNotFoundException: ***** (Too many open files)" 是一个常见的错误,意味着程序尝试打开的文件数量超过了操作系统的限制。这个错误通常出现在处理大量文件或长时间运行的程序中,尤其...

    报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.-附件资源

    报错:java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.-附件资源

    JBuider第八章:Java.io包.rar

    Java.io包是Java编程语言中的核心包之一,它包含了用于输入/输出操作的类和接口。这个包在Java中扮演着至关重要的角色,因为它提供了处理数据流、字符流、对象序列化、文件读写以及与操作系统交互的各种工具。在本...

    jave-1.0.2-src.jar

    it.sauronsoftware.jave.EncoderException: java.io.IOException: Cannot run program "C:\Users\moxiao\AppData\Local\Temp\jave-1\ffmpeg.exe": CreateProcess error=740, 请求的操作需要提升。 在最新的liunx ...

    java session

    严重: IOException while loading persisted sessions: java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: xxxxxx ``` 3. **解决方法** - **方法一**: 配置Tomcat不在关闭...

    org.apache.catalina.connector.ClientAbortException和TOMCAT的日志配置

    问题1:TOMCAT下载文件出错:org.apache.catalina.connector.ClientAbortException. 问题2:TOMCAT记录接收数据大小、发送数据大小和请求处理时间

    java.io.CharConversionException: isHexDigit 出现错误的原因及其解决办法

    Java中的`CharConversionException`是`IOException`的一个子类,主要在字符编码转换过程中遇到问题时抛出。在你的问题中,错误提示是"java.io.CharConversionException: isHexDigit",这通常意味着在处理字符或字符...

    jenkins所需的插件等

    1. **安装 Java**:Jenkins 需要 Java 运行环境,确保系统已安装最新版的 JDK。 2. **下载 Jenkins**:从官方网站获取适合 Linux 平台的 Jenkins 可执行文件。 3. **启动 Jenkins**:通过命令行启动 Jenkins,例如...

    Linux Centos7 系统Tomcat8.5.54 配置SSL证书

    最后换了Tomcat8.5.54的才配置成功。下面就是我配置的过程,记录一下,与大家共勉。 1.首先公司的泛域名,运维给了ssl证书的文件包: 2.我们选取Tomcat的ssl证书,有jks文件和key的文件。  3....

    java. lang . UnsatisfiedLinkError: org. apache . hadoop. io. nativeio. NativeIOSWindows . access0

    Exception in thread “main” java. lang . UnsatisfiedLinkError: org. apache . hadoop. io. nativeio. NativeIOSWindows . access0 (Ijava/ lang/String;I)Z  原因:在调用NativeIO中的...

    servlet3.0实现文件上传——demo1.zip

    1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C:\upload] is not valid 2、请不要使用360安全浏览器演示本功能,否则会...

    java.security.InvalidKeyException:illegal Key Size

    在Java编程环境中,"java.security.InvalidKeyException: illegal Key Size" 是一个常见的错误,通常发生在加密或解密操作中。这个错误表示你试图使用的密钥长度超过了Java默认的安全限制。在给定的上下文中,这个...

    servlet3.0文件上传 01.zip

    1、在上传文件前请在计算机C盘新建一个名为“upload”的文件夹,否则会出现如下异常:java.io.IOException: The temporary upload location [C:\upload] is not valid 2、请不要使用360安全浏览器演示本功能,否则会...

    java keytool安全证书学习

    Java Keytool是一个强大的工具,主要用于管理和操作密钥对和数字证书,这些是Java安全框架中的核心元素。在Java Secure Socket Extension (JSSE) 中,它扮演着创建和管理KeyStore和TrustStore的角色,以实现SSL/TLS...

    java.io包讲解

    ### Java.io包详解 #### 一、概述 Java.io包是Java编程语言中非常重要的一个标准库,它提供了丰富的类和接口,支持多种输入/输出流的处理方式,包括文件I/O、网络通信等场景。Java.io包的核心设计思想是以流...

    Eclipse 调用 Genymotion 2.5.4 模拟器缺失文件 32位+64位版

    genymotion 2.5.4 模拟器 的free 版 没有提供 reg.exe 文件, 所以 Eclipse 要调用 genymotion 时 会报类似 Exception (VBoxManage): java.io.IOException: Cannot run program "C:\Program Files\Genymobile\...

    genymotion reg.exe

    Exception (VBoxManage): java.io.IOException: Cannot runprogram "D:\SoftwareInstall\Genymotion\/reg": CreateProcesserror=2 将文件解压放到安装目录解决eclipse或者Android Studio不能启动genymotion的问题

Global site tag (gtag.js) - Google Analytics