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

cs_GGM Messages postés 5 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 30 juillet 2003 - 29 juil. 2003 à 10:39
difou Messages postés 2 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 25 août 2008 - 25 août 2008 à 16:42
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

CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
30 juil. 2003 à 01:23
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 :)
0
cs_GGM Messages postés 5 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 30 juillet 2003
30 juil. 2003 à 12:25
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)
0
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
30 juil. 2003 à 20:02
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 :)
0
cs_GGM Messages postés 5 Date d'inscription jeudi 17 juillet 2003 Statut Membre Dernière intervention 30 juillet 2003
30 juil. 2003 à 20:56
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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
CoreBreaker Messages postés 540 Date d'inscription dimanche 23 mars 2003 Statut Membre Dernière intervention 5 octobre 2007 1
30 juil. 2003 à 22:53
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 :)
0
NataKova Messages postés 1 Date d'inscription lundi 20 septembre 2004 Statut Membre Dernière intervention 20 septembre 2004
20 sept. 2004 à 17:11
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
0
difou Messages postés 2 Date d'inscription vendredi 8 avril 2005 Statut Membre Dernière intervention 25 août 2008
25 août 2008 à 16:42
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
0
Rejoignez-nous