29

我有一个使用 Tomcat 中运行的 struts2、spring3 和 hibernate 4 的 Web 程序。它可以工作,但 Tomcat 报告了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)
4

6 回答 6

55

您可以删除 ${catalina.home}/work/Catalina/localhost/<app>/SESSION.ser 其中 app 是您的应用程序。

于 2012-12-21T10:42:07.923 回答
7

您可以删除 ${CATALINA_HOME}/work/Catalina/localhost/test

其中 test 是您的应用程序文件夹(战争名称)。

这解决了我的问题

于 2013-05-15T09:36:23.487 回答
3

尝试删除tomcat的Work文件夹,然后重启tomcat。它对我有用!

于 2014-10-31T04:52:17.820 回答
0

我在 Eclipse 中有一个项目并使用 tomcat 插件运行它,我尝试了这个但没有帮助,所以我观察到在我的项目目录结构中还有一个工作目录,我删除了那个目录,一切都开始工作了。只是想为像我这样的其他人分享另一个可能的答案。

于 2014-02-17T06:34:53.600 回答
0

我尝试了上面的方法:${CATALINA_HOME}/work/Catalina/localhost 中的“删除工作目录”,${CATALINA_HOME}/conf/context.xml 中的“取消注释管理器路径名”。没有工作。

我发现在我的eclipse项目中,服务器项目也有一个名为“context.xml”的文件,必须在创建服务器项目时复制它。我在那里“取消注释管理器路径名”,它终于奏效了!

希望它会帮助别人!

于 2014-10-10T09:45:15.343 回答
0

正如@GauravS 所说。我正在使用 Eclipse,所以当我右键单击 tomcat 服务器(在服务器窗口中)并清理它时,它可以工作......

有时我必须从 tomcat 中删除战争,清理而不是再次运行它。

有时我删除 tomcat 并右键单击 Servers 窗口, New , Server 并使用我正在使用的相同端口并删除旧服务器。

PS:打开服务器窗口:

Window - Show View - Other - write "Servers" and choose it from the list - OK
于 2016-07-27T07:48:28.270 回答