tomcat 启动时报 SEVERE: IOException while loading persisted sessions: java.io.EOFExc

tomcat 启动时,报

tomcat  startup error,due

Aug 29, 2012 10:37:36 AM org.apache.catalina.session.StandardManager doLoad
SEVERE: IOException while loading persisted sessions: java.io.EOFException
java.io.EOFException
 at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
 at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
 at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
 at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:362)
 at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
 at org.apache.catalina.session.StandardManager.start(StandardManager.java:643)
 at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4559)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
 at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
 at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
 at org.apache.catalina.core.StandardService.start(StandardService.java:519)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
 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:597)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
Aug 29, 2012 10:37:36 AM org.apache.catalina.session.StandardManager start
SEVERE: Exception loading sessions from persistent storage
java.io.EOFException
 at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2280)
 at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2749)
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:779)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:279)
 at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58)
 at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:362)
 at org.apache.catalina.session.StandardManager.load(StandardManager.java:321)
 at org.apache.catalina.session.StandardManager.start(StandardManager.java:643)
 at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:438)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4559)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
 at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
 at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:785)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:445)
 at org.apache.catalina.core.StandardService.start(StandardService.java:519)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:581)
 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:597)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)

 

 

由于上次tomcat ,非正常关闭,导致持久化到硬盘的session文件不正常,所以在读取时候会报错。

解决方法是 删除 work目录下的session.ser文件

提供的参考引用中未涉及“java.io.IOException: Unable to wrap data, invalid status [CLOSED]”错误的解决方法。不过一般性地,对于这类 `java.io.IOException` 错误,可以按以下思路解决: ### 检查资源状态 此错误提示 `invalid status [CLOSED]`,表明尝试对已关闭的资源进行操作。需要检查代码里所有涉及资源操作的部分,确保在使用资源前其处于打开状态,使用完毕后正确关闭。例如,对于文件输入输出流,要确保在读写操作前流已打开,读写完成后调用 `close()` 方法关闭流。 ```java import java.io.FileInputStream; import java.io.IOException; public class ResourceCheckExample { public static void main(String[] args) { FileInputStream fis = null; try { fis = new FileInputStream("example.txt"); // 进行文件读取操作 int data; while ((data = fis.read()) != -1) { // 处理读取的数据 } } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } } ``` ### 检查资源管理逻辑 要保证资源的生命周期管理逻辑正确。例如,在多线程环境中,可能存在一个线程关闭了资源,而另一个线程仍在尝试使用该资源的情况。可以使用同步机制(如 `synchronized` 关键字)来保证资源的安全访问。 ```java import java.io.FileInputStream; import java.io.IOException; public class ResourceManagementExample { private FileInputStream fis; public synchronized void openResource() throws IOException { fis = new FileInputStream("example.txt"); } public synchronized void readResource() throws IOException { if (fis != null) { int data; while ((data = fis.read()) != -1) { // 处理读取的数据 } } } public synchronized void closeResource() throws IOException { if (fis != null) { fis.close(); fis = null; } } } ``` ### 调试和日志记录 在代码中添加详细的日志记录,输出资源的打开、关闭和使用状态,有助于定位问题。例如,在资源打开和关闭时记录日志。 ```java import java.io.FileInputStream; import java.io.IOException; import java.util.logging.Level; import java.util.logging.Logger; public class LoggingExample { private static final Logger LOGGER = Logger.getLogger(LoggingExample.class.getName()); public static void main(String[] args) { FileInputStream fis = null; try { LOGGER.log(Level.INFO, "Opening file input stream"); fis = new FileInputStream("example.txt"); // 进行文件读取操作 int data; while ((data = fis.read()) != -1) { // 处理读取的数据 } } catch (IOException e) { LOGGER.log(Level.SEVERE, "IOException occurred", e); } finally { if (fis != null) { try { LOGGER.log(Level.INFO, "Closing file input stream"); fis.close(); } catch (IOException e) { LOGGER.log(Level.SEVERE, "Error closing file input stream", e); } } } } } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值