Servlet => HttpSession : impossible de sauver des valeurs dans la session

Signaler
Messages postés
5
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
30 juillet 2003
-
Messages postés
2
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
25 août 2008
-
Hello everybody people !!
Ptit problème au nivau des servlet java :
je veux créer une httpSession afin de garder des infos sur l'utilisateur mais quand je veux les sauver dans la session il me met une erreur !! ?-)
(Aucun pb à la compilation)

Si kk'un a une idée ?

Merci d'avance !
-----------------------------------------------
La source :
public void doPost(HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
{

ServletOutputStream out = res.getOutputStream();
res.setContentType("text/html");
String service = req.getParameter("service");
String redacteur = req.getParameter("redacteur");

if ((redacteur == null) || (redacteur.length()==0))
{
msgAlert = " - VOUS N'AVEZ PAS SAISI DE NOM DE REDACTEUR ";
out.println(showForm());
msgAlert="";
}

// Si redacteur!= null || <= 50 caractères=> OK
else
{
// On stocke dans un context les informations du user (redacteur & service)

// Création de la session
HttpSession session = req.getSession(true);

// Sauve les infos
session.setAttribute("redacteur", redacteur);
session.setAttribute("service",service);

// redirection vers la page suivante
url ="toto.html";
out.println("<meta http-equiv="refresh" content="0;URL=" + url + "">");
}

}
---------------------------------------------------------------------

7 réponses

Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
Et quel message d'erreur est envoyé. Si c'est une exception c'est au runtime et jamais à la compilation car une appli ne génère jamais d'exception propre à elle à la compilation.

getSession ne suffit pas.
Il faut activer les sessions à partir du fichier de config de ton serveur.

Core Breaker :)
Messages postés
5
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
30 juillet 2003

Ok !!
En fait j'utilise un serveur Tomcat (v 4.1) mais pour le configurer j'avoue mon ignorance !

Si kk'un sait le configurer pour les HttpSession ?

GGM

PS : merci Core Breaker !!

-------------------------------------------------------------
Liste des exceptions :

javax.servlet.ServletException: L''exécution de la servlet a lancé une exception
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:534)

cause mère

java.lang.NoSuchMethodError: javax.servlet.http.HttpSessionBindingEvent.(Ljavax/servlet/http/HttpSession;Ljava/lang/String;Ljava/lang/Object;)V
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1274)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:191)
at org.apache.catalina.session.StandardSessionFacade.setAttribute(StandardSessionFacade.java:191)
at SessionTracker.doGet(SessionTracker.java:23)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:594)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
at java.lang.Thread.run(Thread.java:534)
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
Je vois le problème mais je sais pas trop comment la corriger.
En fait le serveur d'application catalina es cessé implémenter l'interface javax.servlet.http.HttpSessionBindingListener mais c'est visiblement pas fait. Essai d'implémente cette interface dans les classes dont tu ajoute les objets dans la session mais c'est pas garantit.
C'est un peu bidouille mais bon il faut ce qu'il faut.

Sinon essai de voir si le fichier de paramétrage (un .properties je crois) de catalina est correctement configuré au niveau des sessions.

Core Breaker :)
Messages postés
5
Date d'inscription
jeudi 17 juillet 2003
Statut
Membre
Dernière intervention
30 juillet 2003

Effectivement c t bien un problème de config de mon serveur Tomcat !
Mais je me suis pas pris la tête G réinstallé une version toute propre de Tomcat 4.1 parce ke celle d'avant je l'avais un ptit peu bidouillé et appremment ça lui a pas plu !! :/

et maintenant ça fonctionne !!

pow@@@@ !!! :-P

Merci encore CoreBreaker !
Messages postés
540
Date d'inscription
dimanche 23 mars 2003
Statut
Membre
Dernière intervention
5 octobre 2007
1
eh voilà !!
En fait pour bidouiller un server d'appli il faut connaître son fochier de config à fond ! Et Tomcat n'est pas un des simple car il est très évolué et permet donc de le personnaliser à fond.

Core Breaker :)
Messages postés
1
Date d'inscription
lundi 20 septembre 2004
Statut
Membre
Dernière intervention
20 septembre 2004

Bonjour,
mon appli est ecrite en java1.2.
Je dois passer sous Jonas (Tomcat 4.1 -Apache 2 et qui utilise jdk 4). Je rencontre le meme probleme lors de runtime:

java.lang.NoSuchMethodError: javax.servlet.http.HttpSessionBindingEvent.(Ljavax/servlet/http/HttpSession;Ljava/lang/String;Ljava/lang/Object;)V
at org.apache.catalina.session.StandardSession.setAttribute(StandardSession.java:1274)

vous dites dans votre mail, que c'etait un pb de config de TOmcat, pourriez vous m'indiquer dans quel fichier de config et quelle modification vous avez fait.

merci
Messages postés
2
Date d'inscription
vendredi 8 avril 2005
Statut
Membre
Dernière intervention
25 août 2008

Bonjour tout le monde
je veux créer une httpSession pour garder des données relatives à la session d'un
l'utilisateur.j'arrive à sauver les données dans la session(lors de l'appel du servlet pour vérifier le login auprès d'une base des données) et quand je veux récuperer ces données à partir d'une autre servlet
je trouve null!!!!
je pense que le problème est au niveau de l'url
comment choisir un id pour chaque utilisateur?est ce que je doit le mettre dans la page de saisi de login?

merci d'avance