pb avec tomcat 5

pb avec tomcat 5 - Java - Programmation

Marsh Posté le 25-06-2004 à 14:13:35    

j'ai un ptit soucis, depuis que je fais du stream pour lire un fichier texte, à chaque fois que je redemarre tomcat j'ai ce message la dans les logs :
 
25 juin 2004 14:10:26 org.apache.catalina.session.StandardManager doLoad
GRAVE: "IOException" lors du chargement des sessions persistantes: java.io.EOFException
java.io.EOFException
 at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2150)
 at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2619)
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:726)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:251)
 at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:56)
 at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:384)
 at org.apache.catalina.session.StandardManager.load(StandardManager.java:343)
 at org.apache.catalina.session.StandardManager.start(StandardManager.java:657)
 at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499)
 at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:315)
 at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:635)
 at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4268)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
 at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
 at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
 at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:683)
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:964)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
 at org.apache.catalina.core.StandardService.start(StandardService.java:476)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
 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:324)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
25 juin 2004 14:10:26 org.apache.catalina.session.StandardManager start
GRAVE: Exception au chargement des sessions depuis le stockage persistant (persistent storage)
java.io.EOFException
 at java.io.ObjectInputStream$PeekInputStream.readFully(ObjectInputStream.java:2150)
 at java.io.ObjectInputStream$BlockDataInputStream.readShort(ObjectInputStream.java:2619)
 at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:726)
 at java.io.ObjectInputStream.<init>(ObjectInputStream.java:251)
 at org.apache.catalina.util.CustomObjectInputStream.<init>(CustomObjectInputStream.java:56)
 at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:384)
 at org.apache.catalina.session.StandardManager.load(StandardManager.java:343)
 at org.apache.catalina.session.StandardManager.start(StandardManager.java:657)
 at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:499)
 at org.apache.catalina.startup.ContextConfig.managerConfig(ContextConfig.java:315)
 at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:635)
 at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:216)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.StandardContext.start(StandardContext.java:4268)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
 at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:277)
 at org.apache.catalina.core.StandardHost.install(StandardHost.java:832)
 at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:683)
 at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:432)
 at org.apache.catalina.startup.HostConfig.start(HostConfig.java:964)
 at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
 at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
 at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
 at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
 at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
 at org.apache.catalina.core.StandardService.start(StandardService.java:476)
 at org.apache.catalina.core.StandardServer.start(StandardServer.java:2298)
 at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
 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:324)
 at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:284)
 at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:422)
 
 
 
je vois pas quoi faire, si vous pouvez m'aider ;)
 
merci

Reply

Marsh Posté le 25-06-2004 à 14:13:35   

Reply

Marsh Posté le 25-06-2004 à 14:36:00    

si t'as pas besoin des sessions persistantes, désactive les. et supprime fichier de sauvegarde des sessions (dans work) : il a l'air pourri ...

Reply

Marsh Posté le 25-06-2004 à 15:04:41    

tu peux me dire ou est ce que l'on desactive ca
et quel est le fichier a supprimer, j'ai aps trouve
 
merci bien

Reply

Marsh Posté le 25-06-2004 à 16:16:10    

J'ai aussi constaté ce pbm.
Cela vient du fait qu'on place parfois des objets non serialisables dans la session.
Si le serveur est arrêté, tomcat essaye de sauvegarder les sessions en les sérialisant d'où l'erreur en question.
Dans le cas du standard manager, je ne trouve pas comment désactiver ce comportement simplement.
 
Une mauvaise solution serait d'invalider toutes les sessions actives lors d'un arrêt du serveur.
 
Mais il doit y avoir mieux...
 

Reply

Marsh Posté le 25-06-2004 à 23:34:10    

krosso a écrit :


Une mauvaise solution serait d'invalider toutes les sessions actives lors d'un arrêt du serveur.


 [:vomi]  
 
 
pour des infos sur la config de la persistence de session : http://jakarta.apache.org/tomcat/t [...] nager.html
 
le fichier doit se trouver dans le répertoire work de tomcat. A la racine je pense ...

Reply

Marsh Posté le 26-06-2004 à 10:32:07    

benou a écrit :

pour des infos sur la config de la persistence de session : http://jakarta.apache.org/tomcat/t [...] nager.html
 
le fichier doit se trouver dans le répertoire work de tomcat. A la racine je pense ...


bin oui, je l'ai lu ça, hein...
Apparemment il n'y a pas de paramètre à passer au standard manager pour qu'il n'essaye pas de persister les sessions : c'est merdique.
On peut le remplacer par un persistent manager qui a un paramètre saveOnRestart qu'on peut mettre à false.
Mais la doc déconseille d'utiliser le persistent manager => retour à la case départ.
 
(quant au fichier de config, il est dans conf)

Reply

Marsh Posté le 26-06-2004 à 10:57:41    

krosso a écrit :

(quant au fichier de config, il est dans conf)


je parlais du fichier qui contient les sessions sérialisées

Reply

Marsh Posté le 26-06-2004 à 10:59:05    

sinon, je me sers quotidiennement de tomcat. Je ne mets jamais rien de spécial dans la conf (le context avec les attributs minimums) et je suis pas emmerdé avec la persistence de session => à mon avis, notre ami doit avoir une conf spéciale ...

Reply

Marsh Posté le 26-06-2004 à 11:27:19    

benou a écrit :

sinon, je me sers quotidiennement de tomcat. Je ne mets jamais rien de spécial dans la conf (le context avec les attributs minimums) et je suis pas emmerdé avec la persistence de session => à mon avis, notre ami doit avoir une conf spéciale ...


 
Ce pbm ne se rencontre que si tomcat essaye de sérialiser une session dans laquelle tu as rangé des objets non sérializables.  
Ca pète à l'arrêt et au redémarrage du serveur.
 
En effet effacer SESSIONS.ser qui se trouve par défaut dans le rép work de ta webapp (ou sinon dans $CATALINA_HOME/work), ça peut aussi éviter ces vilaines stack trace au redémarrage.
 
Ca pollue les logs, et quand ça fonctionne, ça remonte des sessions en mémoire au redémarrage.
Je ne trouve pas ça terrible comme comportement par défaut.
 

Reply

Marsh Posté le 26-06-2004 à 11:29:04    

krosso a écrit :

Ce pbm ne se rencontre que si tomcat essaye de sérialiser une session dans laquelle tu as rangé des objets non sérializables.  
Ca pète à l'arrêt et au redémarrage du serveur.


nan mais moi je sais, hein ;)

Reply

Marsh Posté le 26-06-2004 à 11:29:04   

Reply

Marsh Posté le 26-06-2004 à 12:12:38    

j'ai fait le test suivant, dans mon server.xml :

Code :
  1. <Context path="" docBase="ROOT" debug="0">
  2.             <Manager className="org.apache.catalina.session.PersistentManager"
  3.             debug="0"
  4.             saveOnRestart="false"
  5.             maxActiveSessions="-1"
  6.             minIdleSwap="-1"
  7.             maxIdleSwap="-1"
  8.             maxIdleBackup="-1" />
  9.           </Context>


 
Je démarre le serveur et je vois passer un message :  

Code :
  1. 26 juin 2004 12:10:08 org.apache.catalina.session.PersistentManagerBase start
  2. GRAVE: No Store configured, persistence disabled


mmmh.... pas terrible...
 
J'ouvre une session sur une webapp (tomcat manager en l'occurence), je stoppe le serveur.
Et je vois apparaître un beau SESSIONS.ser là où il faut.
Je redémarre tomcat, je vais sur le manager et il ne me demande pas d'authentification, j'en déduis qu'il a recréé ma session.
 
BREF!
il y a vraiment qlqc que je ne comprends pas.

Reply

Marsh Posté le 26-06-2004 à 12:14:11    

lis bien la doc : il doit y avoir une balise Store dans le Manager pour lui indiquer comment sauvegarder la sessions.


Message édité par benou le 26-06-2004 à 12:14:20
Reply

Marsh Posté le 26-06-2004 à 13:44:19    

Que l'on ajoute  <Store> ou pas Tomcat continue de sérialiser les sessions.
Cela commence à ressembler à un bug de tomcat.
 
Je vais jeter un oeil aux sources de ces managers.

Reply

Marsh Posté le 28-06-2004 à 08:53:00    

salut tout le monde, je vois que ca a bien bouge depuis que je suis parti ;)
donc si j'ai bien compris, pour l'instant vous me conseillez de ne rien faire??

Reply

Marsh Posté le 28-06-2004 à 09:35:00    

J'aimerais bien pouvoir te dire quoi faire, mais je n'ai pas trouvé comment désactiver cette sérialisation automatique.

Reply

Marsh Posté le 08-03-2010 à 16:52:30    

vide le repertoire work de ton tomcat et le probleme est reglé

Reply

Marsh Posté le 08-03-2010 à 17:54:29    

mtkforum a écrit :

vide le repertoire work de ton tomcat et le probleme est reglé

 

combo "first post" + "déterrage 6 ans"...
[:obvious]

 

(je pense que depuis le temps il a sans doute du reformatter sa bécane, donc son rép work a du se vider...)


Message édité par pataluc le 08-03-2010 à 17:55:25
Reply

Marsh Posté le 11-04-2014 à 10:00:03    

Personnellement, j'étais sous ecplipse Helios, avec le jdk "jdk1.6.0_04" et tomcat "apache-tomcat-6.0.29".
J'ai installé eclipse Kepler, avec un nouveau jdk "jdk1.6.0_41_x86", toujours sur le même tomcat.
Suite à différents bugs rencontrés sous Kepler, j'ai fait machine arrière, et c'est à partir de là que j'ai rencontré exactement les mêmes messages d'erreur au démarrage de tomcat à savoir:
 
GRAVE: Exception au chargement des sessions depuis le stockage persistant (persistent storage)
java.io.EOFException  
 
La suppression du contenu du dossier ...\apache-tomcat-6.0.29\work a solutionné le problème
 
Merci !!!


Message édité par sanza35 le 11-04-2014 à 10:01:42
Reply

Marsh Posté le 12-04-2014 à 11:34:47    

excellent je peux presque reposter même réponse du 3 mars (2010)... ^^

Reply

Marsh Posté le 14-04-2014 à 17:25:03    

Du 8 mars 2010 tu veux dire ? Ouais, j'ai juste eu envie de dire merci après m'être bien pris la tête, c'est tout...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed