Question

Je suis en cours d'exécution d'une application Web Stripes sur Jboss 4.2.3.GA et essaie d'appeler une méthode quand je commence à JBoss. J'ai créé un ServletContextListener comme ceci:

public class TimerContextListener implements ServletContextListener {

    @Inject
    private TimerManager timerManager;

    public void contextInitialized(ServletContextEvent servletcontextevent) {
        ((Injector) servletcontextevent.getServletContext().getAttribute(GuiceServletContextListener.KEY)).injectMembers(this);
        timerManager.stopAllTimers();
        timerManager.startTimer();
    }

    public void contextDestroyed(ServletContextEvent servletcontextevent) {

    }
}

et j'ajouté une entrée dans web.xml comme ceci:

<listener>
        <listener-class>com.lawless.web.servletContextListeners.TimerContextListener</listener-class>
    </listener>

mais contextInitialized () devient appelé 3 fois quand je commence mon serveur. Toute idée de ce que la question pourrait être? Merci.

Était-ce utile?

La solution

Ok je compris. Il était appelé 3 fois parce que j'avais 3 hôtes virtuels définis dans mon jboss-web.xml. Je ne sais pas pourquoi il provoque ce comportement bien. Si quelqu'un peut expliquer la raison pour laquelle je vous serais reconnaissant.

Autres conseils

Il y aura une seule ServletContext pour chaque application Web. ServletContext sera créé lors du déploiement de l'application (3 hôtes virtuels moyens de déployer 3 hôtes différents avec 3 adresses IP différentes). Une fois que le ServletContext est créé, il sera utilisé par tous les servlets et des fichiers JSP dans la même application. ServletContext est aussi appelé les variables de champ d'application dans le scénario d'application Web.

Source - http://www.javabeat.net/2009/02/servletcontextlistener -example /

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top