pb avec tomcat 5 - Java - Programmation
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 ...
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
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...
Marsh Posté le 25-06-2004 à 23:34:10
krosso 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 ...
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 |
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)
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
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 ...
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.
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. |
nan mais moi je sais, hein
Marsh Posté le 26-06-2004 à 12:12:38
j'ai fait le test suivant, dans mon server.xml :
Code :
|
Je démarre le serveur et je vois passer un message :
Code :
|
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.
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.
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.
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??
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.
Marsh Posté le 08-03-2010 à 16:52:30
ReplyMarsh 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"...
(je pense que depuis le temps il a sans doute du reformatter sa bécane, donc son rép work a du se vider...)
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 !!!
Marsh Posté le 12-04-2014 à 11:34:47
excellent je peux presque reposter même réponse du 3 mars (2010)... ^^
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...
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