IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tomcat et TomEE Java Discussion :

Etre notifier d'un evenement tomcat


Sujet :

Tomcat et TomEE Java

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 197
    Points : 54
    Points
    54
    Par défaut Etre notifier d'un evenement tomcat
    Salut, a tous je veux faire une classe qui s'enregistre pour reagir aux evenement TOMCAT par exemple ma classe doit reagir imediatement lorsqu'une session se ferme ou devien inactive.
    cordialement.

  2. #2
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    pas très compliqué: configure Tomcat (dans le web.xml dela webapp) avec ça:

    <listener>
    <listener-class>mon.package.maservlet.MaServlet</listener-class>
    </listener>

    écris ta classe "MaServlet" de façon à ce qu'elle implémente HttpSessionListener (pour ma part j'en fais en plus une servlet, mais je ne crois pas que ce soit obligatoire).

    Toute session créée ou terminée provoquera l'appel d'une méthode de ta classe.

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    197
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 197
    Points : 54
    Points
    54
    Par défaut
    Mrci beaucoup.
    Mais pourrais-je avoir un petit exemple ou un tuto.
    cordialement.

  4. #4
    Candidat au Club
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Points : 3
    Points
    3
    Par défaut
    Voici une classe qui fait ce genre de choses. Je la simplifie pour enlever le code spécifique à mon entreprise, copyright oblige :-).

    Je n'entre pas dans le détail du code, propre à l'architecture applicative que j'utilise. les méthodes qui t'intéressent sont sessionCreated et sessionDestroyed. N'oublie pas de mettre à jour le web.xml pour déclarer cette classe comme session listener.
    En espérant que ça t'aide.


    package xxx.xxx.xxx;

    import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpSessionEvent;
    import javax.servlet.http.HttpSessionListener;


    /**
    * Helper for an easy initialization of web technology aware facades.
    * must be inherited to implement concrete classes.
    * @author saloul
    */
    public abstract class WebApplication extends HttpServlet implements HttpSessionListener {

    /**
    * General initializer for a web application.
    * Takes care of the correct initialization of all required facades.
    * Each facade actually is a singleton and may depend on the technology.
    */
    public void init(ServletConfig config) throws ServletException {
    //mettre ici le code pour initialiser l'architecture (ne marche que parce que cette classe est une servlet)
    WebConfigurationManager.initialize(config.getServletContext());
    LoggerFacade.initialize();
    MonitorFacade.initialize();
    WebUniqueIdManager.initialize();
    WebContextManager.initialize();
    WebServerFacade.initialize(config);
    }

    /**
    * get the simple name of the application, as a String.
    */
    public final String getApplicationName() {
    return getClass().getSimpleName();
    }

    /**
    * General initializer for a web session.
    * Takes care of the correct initialization of all the session dependent components.
    * These components may depend on the technology of the application.
    */
    public void sessionCreated(HttpSessionEvent ev) {
    //méthode appelée quand une session est créée
    //new Session: create contextManager
    RequestUniqueId id=UniqueIdManagerFacade.generateUniqueId(WebTools.getSession(ev));
    ContextFacade.bindSessionContext(id, ev.getSession());
    internalInitializeSession(ev);
    }

    /**
    * General finalizer for a web session.
    * Takes care of the correct finalization of all the session dependent components.
    * These components may depend on the technology of the application.
    */
    public void sessionDestroyed(HttpSessionEvent ev) {
    //méthode appelée quand une session est invalidée
    HttpSession ses=WebTools.getSession(ev);
    TraceFacade.warn("Session "+ses.getId()+" has been destroyed");
    RequestUniqueId id=UniqueIdManagerFacade.generateUniqueId(ses);
    MonitorContext context=MonitorFacade.startRequest(id, "sessionDestroyed");
    try {
    ContextFacade.bindSessionContext(id, ev.getSession());
    internalDisposeSession(ev);
    }
    finally {
    MonitorFacade.completeRequest(context);
    }
    }

    /**
    * internal initialization of the application
    */
    protected abstract void internalInitializeApplication(ServletConfig config);

    /**
    * internal initialization of the session
    */
    protected abstract void internalInitializeSession(HttpSessionEvent ev);

    /**
    * internal disposal of the session
    * @param ev
    */
    protected abstract void internalDisposeSession(HttpSessionEvent ev);
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/05/2011, 21h57
  2. Etre notifié des changements dans Mysql
    Par developper2006 dans le forum AWT/Swing
    Réponses: 10
    Dernier message: 10/01/2011, 11h47
  3. empecher le fichier index.html d'etre pris en compte par tomcat
    Par pcouas dans le forum Tomcat et TomEE
    Réponses: 2
    Dernier message: 12/03/2009, 07h26
  4. Réponses: 6
    Dernier message: 28/01/2008, 14h01
  5. Etre notifié de l'ajout d'un job dans le spooler
    Par chtiot dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 12/11/2003, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo