Bonjour,
Je développe une appli web et j'ai un problème de session : quand un utilisateur se connecte, je mets un objet "user" (de type User : nom, userid, ...) en session (fichier SignonAction.java):
1 2 3
| ...
request.getSession().setAttribute("USER", user);
... |
Mes classes action héritent toutes d'une classe BaseAction.java qui créé une variable de type User :
User user = (User) request.getSession().getAttribute("USER");
instancié dans la fonction
execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response)
Ainsi, je peux théoriquement accéder à l'objet "user" dans toutes mes classes.
Or, il se trouve qu'un utilisateur qui lance un calcul assez long voit ce calcul s'arrêter brutalement ; le fichier de trace indique une erreur de type java.lang.NullPointerException
et la ligne en cause est la suivante :
un_autre_objet.setUserid(user.getUserid());
Or il se trouve que cela arrive systématiquement quand une autre personne se connecte, quelle qu'elle soit. Il semblerait que la nouvelle connexion entraine la suppression de l'attribut user de la session du premier utilisateur.
Quelqu'un sait d'où peut provenir le problème ?
Je ne sais pas si cela a un rapport, mais cette appli a été réinstallée plusieurs fois, et dernièrement sur un nouveau serveur, et il me semble que depuis le JSESSIONID n'apparait plus dans l'url. Est-ce normal ? Est-ce lié ?
Merci infiniment pour votre aide.
Partager