2012-09-10 12 views
24

Tengo un programa web que utiliza struts2, spring3 e hibernate 4 ejecutándose en Tomcat. Puede funcionar, pero Tomcat informa un java.io.EOFException.¿Qué hay de malo en mi configuración? SEVERE: IOException durante la carga de sesiones persistentes: java.io.EOFException

El siguiente es el registro de 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

Si está utilizando Eclipse puede hacer clic derecho en el servidor y seleccione "Directorio de trabajo Tomcat limpio" también. – GauravS

Respuesta

52

Puede eliminar $ {} catalina.home/trabajo/Catalina/localhost/< aplicación > /SESSION.ser donde aplicación es su aplicación.

+0

Me salvaste el día. ¡Gracias! – Sid

+0

He estado limpiando mi directorio de trabajo sin ningún efecto. Después de leer esto, lo retiré físicamente, lo limpié, volví a incorporarlo y luego volví a limpiarlo. Eso funcionó ... ¡gracias! –

+1

Tuve que eliminar todo el trabajo/directorio para resolver el problema. – spiffytech

6

Puede eliminar $ {} CATALINA_HOME/trabajo/Catalina/localhost/prueba

donde prueba es su carpeta de aplicación (nombre de guerra).

Esto resolvió mi problema

0

Estoy teniendo un proyecto en Eclipse y Tomcat utilizando plug-in para ejecutarlo, he intentado esto, pero no sirvió de nada, por lo que he observado en mi estructura de directorios del proyecto hay un trabajo más directorio, eliminé ese directorio y todo comenzó a funcionar. Solo quería compartir esta respuesta más para otros como yo.

0

Probé los métodos anteriores: "eliminar el directorio de trabajo" en $ {CATALINA_HOME}/work/Catalina/localhost, "ruta de acceso de administrador de uncomment" en $ {CATALINA_HOME} /conf/context.xml. No funcionó.

Y encontré que en mis proyectos de eclipse, el proyecto del servidor también tenía un archivo llamado "context.xml", debe copiarse cuando se creó el proyecto del servidor. Y yo "elimine el comentario de la ruta de acceso del administrador" allí, funcionó finalmente!

Espero que ayude a alguien!

3

Intente eliminar la carpeta de trabajo de tomcat, luego reinicie tomcat. ¡Funcionó para mí!

0

Como dijo @GauravS. Estoy usando eclipse así que cuando hago clic derecho en Servidor tomcat (en la ventana Servidores) y lo limpio funcionó ...

A veces tengo que eliminar la guerra de Tomcat, limpiarla y volver a ejecutarla.

A veces borro tomcat y hago clic derecho en la ventana Servidores, Nuevo, Servidor y uso los mismos puertos que estaba usando y elimino el servidor anterior.

PS: para abrir la ventana Servidores:

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