2012-09-10 22 views
24

我有一个使用运行在Tomcat中的struts2,spring3和hibernate 4的web程序。它可以工作,但Tomcat报告java.io.EOFException我的配置有什么问题? SEVERE:加载持久会话时发生IOException:java.io.EOFException

下面是tomcat的日志:

INFO: Deploying web application directory D:\apache-tomcat-7.0.29\webapps\manager 
九月 10, 2012 4:27:02 下午 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:2298) 
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2767) 
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:798) 
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:298) 
    at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58) 
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246) 
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:204) 
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 

九月 10, 2012 4:27:02 下午 org.apache.catalina.session.StandardManager startInternal 
SEVERE: Exception loading sessions from persistent storage 
java.io.EOFException 
    at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2298) 
    at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2767) 
    at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:798) 
    at java.io.ObjectInputStream.<init>(ObjectInputStream.java:298) 
    at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:58) 
    at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:246) 
    at org.apache.catalina.session.StandardManager.load(StandardManager.java:204) 
    at org.apache.catalina.session.StandardManager.startInternal(StandardManager.java:491) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5294) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1100) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1618) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:166) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
    at java.lang.Thread.run(Thread.java:722) 
+12

如果使用的是Eclipse,你可以右键点击你的服务器,并选择“清除Tomcat的工作目录”也。 – GauravS

回答

52

您可以删除$ {}的catalina.home /工作/卡塔利娜/本地主机/ <应用> /SESSION.ser其中,app是您的应用程序。

+0

你节省了我的一天。谢谢! – Sid

+0

我一直在清理我的工作目录不起作用。看完这些后,我身体被移除,清洗干净,重新加入,然后再次清洁。这工作......谢谢! –

+1

我不得不删除整个工作/目录来解决问题。 – spiffytech

6

您可以删除$ {CATALINA_HOME} /工作/卡塔利娜/本地主机/测试

这里测试您的应用程序文件夹(战争名称)。

这解决了我的问题

0

我有Eclipse的一个项目,并使用Tomcat插件来运行它,我想这一点,但它并没有帮助,所以我在项目目录结构中观察到有一个更多的工作目录中,我删除了该目录并开始工作。只是想分享一个像我这样的人更多可能的答案。

0

我尝试了上面的方法:在$ {CATALINA_HOME} /conf/context.xml中的$ {CATALINA_HOME}/work/Catalina/localhost,“uncomment manager pathname”中删除工作目录。没有工作。

而且我发现,在我的Eclipse项目,服务器项目有一个名为“context.xml的”太文件时,服务器创建项目时必须将其复制。我“取消注释经理路径名”那里,它终于工作了!

希望它能帮助别人!

3

尝试删除tomcat的Work文件夹,然后重新启动tomcat。它为我工作!

0

正如@GauravS所说。我使用Eclipse的,所以当我右击Tomcat服务器上(在服务器窗口),并进行清洁它的工作...

有时候,我不得不删除从Tomcat战争,干净比再次运行。

有时我删除Tomcat和右击服务器窗口,新建,服务器和我用我所用相同的端口,并删除旧的服务器。

PS:打开服务器窗口:

Window - Show View - Other - write "Servers" and choose it from the list - OK