Bonjour,
Lorsque je partage deux contexts je perds les variables en session lors d'un deuxième appel d'une action Struts.
Je suis dans le context A je me redirige par l'intermediaire d'une servlet vers mon context B qui lance une action struts et me créé une variable de session (un javabean).
Jusque la tout va bien mon Bean est bien récupérer dans ma JSP.
Maitenant sur cette même page je clique sur un bouton qui me lance une action struts et la j'essaye de récupérer mon Bean et plus rien le Bean n'est plus en session ...
Voici des morceaux de code :
server.xml
Ma redirection servlet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <Context path="/A" docBase="web" debug="0" reloadable="true" crossContext="true"> <Context path="/B" docBase="ces" debug="0" reloadable="true" crossContext="true">
Ma premier action Struts dans un DispatchAction
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 RequestDispatcher dispatcher = getServletContext().getContext(request.getParameter("CONTEXT")).getRequestDispatcher(ReqURL); dispatcher.forward( request , response );
Deuxième action Struts de mon dispatchAction qui ne retrouve plus mon Bean
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 public ActionForward creerActif(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse reponse) throws Exception { HashMap hashMapDisplayParam = new HashMap(); // ActionErrors errors = new ActionErrors(); CreerActifForm creerActifForm = (CreerActifForm) form; hashMapDisplayParam = InitDisplayParamBean("OMCRE1"); InitValue(creerActifForm, hashMapDisplayParam); InitDefaultExtendedValue(creerActifForm, request); //CREATION DE MON BEAN EN SESSION request.getSession().setAttribute("DisplayParam", hashMapDisplayParam); return mapping.findForward("success"); }
Si je lance directement mon application de manière autonome tout marche parfaitement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 public ActionForward fonctionTrigger(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse reponse) throws Exception { // HashMap du bean en session HashMap myMap = new HashMap(); // Récupération du Form CreerActifForm creerActifActiviteLocaliseForm = (CreerActifForm) form; // Récupération de mon bean de ma session myMap = (HashMap) request.getSession().getAttribute("DisplayParam"); Trigger.fonctionTrigger(myMap, creerActifActiviteLocaliseForm); return mapping.findForward("success"); }
Je désespère ....
Merci
Partager