¿Hay alguna forma de hacer algo al iniciar un servidor J2EE? Estoy usando Tomcat [duplicado]

Estoy tratando de que un servidor J2EE se registre (lea: envíe un mensaje a) con otro servidor por iniciativa propia, no como respuesta a algo. Sorprendentemente, encontré muy poca información o preguntas sobre si hay eventos y / o clases para extender que me darán una idea del "inicio del servidor". Siempre podría escribir un script que primero se implemente en el servidor y luego lo solicite, pero realmente prefiero tener una solución más limpia ...

Gracias.

preguntado el 10 de mayo de 11 a las 14:05

1 Respuestas

Implementar ServletContextListener y hacer el trabajo en contextInitialized() método.

public class Config implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent event) {
        // Do stuff during server startup.
    }

    @Override
    public void contextDestroyed(ServletContextEvent event) {
        // Do stuff during server shutdown.
    }

}

Cuando esté usando Tomcat 7, regístrelo de la siguiente manera para que se ejecute

@WebListener
public class Config implements ServletContextListener {

O cuando utilice Tomcat 6 o anterior, regístrelo en web.xml en su lugar.

<listener>
    <listener-class>com.example.Config</listener-class>
</listener>

contestado el 10 de mayo de 11 a las 18:05

Me pregunto por qué la tienda de memorias de ServletContext no está disponible allí. Esto no parece muy lógico, y es una lástima, porque no puedo inicializar atributos que también estarán disponibles más adelante. - vivri

Está disponible por event.getServletContext(). Véase también esas respuestas, en particular esta. - BalusC

De nuevo, muchas gracias. No conocía esa área en la API. - vivri

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.