Pregunta

Me estoy quedando una aplicación web bandas en Jboss 4.2.3.GA y estoy tratando de llamar a un método cuando comienzo JBoss. He creado un ServletContextListener este modo:

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) {

    }
}

y añade una entrada en web.xml así:

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

pero contextInitialized () está consiguiendo llama 3 veces cuando se inicia mi servidor. Cualquier idea de lo que podría ser el problema? Gracias.

¿Fue útil?

Solución

Ok lo he descubierto. Que estaba siendo llamado 3 veces porque tenía 3 hosts virtuales definidas en mi jboss-web.xml. No sé por qué causa que el comportamiento sin embargo. Si alguien puede explicar la razón por la que apreciaría.

Otros consejos

No será sólo un ServletContext para cada aplicación web. ServletContext será creado durante la implementación de la aplicación (3 anfitriones de medios virtuales desplegar a 3 anfitriones diferentes con 3 direcciones IP diferentes). Una vez creada la ServletContext, que será utilizado por todos los servlets y archivos JSP en la misma aplicación. ServletContext también se llama como las variables de ámbito de aplicación en el escenario de aplicación web.

Fuente - http://www.javabeat.net/2009/02/servletcontextlistener -Ejemplo /

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top