Bonjour,

Je travaille sur une application java qui appelle des HttpServlet sur un serveur Tomcat.

J'ai mis en place dans le fichier Xml:
  • un TimeOut (que j'ai baissé à 3 minutes pour mes tests)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
<session-config>
	<session-timeout>3</session-timeout>
</session-config>
  • un listener sur les attributs de la session

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
<listener>
	<listener-class>
		fr.meteo.servlet.auth.SessionAttribute
	</listener-class>
</listener>
Enfin j'ai une classe qui s'occupe de déconnecter mon utilisateur si la session est trop longtemps innactive
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
21
22
23
24
25
26
27
28
29
30
package fr.meteo.servlet.auth;
 
import javax.servlet.http.HttpSessionAttributeListener;
import javax.servlet.http.HttpSessionBindingEvent;
 
/**
 * Classe SessionAttribute
 */
public class SessionAttribute implements HttpSessionAttributeListener{
 
	public void attributeAdded(HttpSessionBindingEvent event) {
		// TODO Auto-generated method stub
	}
 
	@Override
	/**
	 * Définition : Méthode permettant de gerer la déconnection
	 */
	public void attributeRemoved(HttpSessionBindingEvent event) {
		if (event.getName().equals("Login")){
			DeconnectionServeur.deconnection((String)event.getValue());	
		}
	}
 
	@Override
	public void attributeReplaced(HttpSessionBindingEvent arg0) {
		// TODO Auto-generated method stub
 
	}
}
Mon problème :
Bien que j'appelle différents services au cours de ces 3 minutes, le serveur me déconnecte automatiquement 3 minutes (environ) après que l'utilisateur se soit connecté.

Donc la question est :
Comment faire comprendre au serveur que la session est solicitée et donc toujours en activité ?

Je pensais régler le problème en mettant le code suivant dans mes servlets mais ce n'est pas la bonne solution :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
String ip = request.getRemoteAddr();
HttpSession session = request.getSession();
session.setAttribute("Ip", ip);
session.setAttribute("Login", login);
(Mon idée était de créer de l'activité sur la session)

Mon raisonnement n'est pas le bon mais je ne vois pas quoi corriger ...

Merci pour votre aide