2011-06-11 15 views
7

Mi pregunta es similar a this one, pero con respecto a Java en lugar de Python.Ejecutar script en el inicio del servidor en Google App Engine, en Java

¿Cómo puedo forzar que se ejecute algún código Java cada vez que se inicia una nueva instancia de un servidor de Google App Engine?

Gracias!

+1

Tenga en cuenta que la cantidad de instancias de servidor que tenga dependerá de la carga, por lo que es más "cuando comienzan" que "cuando los inicio". –

+0

¡Por supuesto! Solo una forma de hablar: ¡ya lo he editado para hacerlo más informativo! Gracias – ptdev

Respuesta

15

en el motor de aplicaciones de Google, su código java se ejecuta dentro del entorno de servlet. por lo tanto, podría definir oyentes para impulsar su código de inicio. Para ello, es necesario implementar el código de inicio en el oyente y definir el oyente en su web.xml:

clase listner:

package test; 

import javax.servlet.ServletContextEvent; 
import javax.servlet.ServletContextListener; 

public class MyContextListener implements ServletContextListener { 

    @Override 
    public void contextInitialized(ServletContextEvent sce) { 
     // startup code here 
    } 

    @Override 
    public void contextDestroyed(ServletContextEvent sce) { 
     // shutdown code here 
    } 

} 

web.xml:

<web-app> 
    <listener> 
     <listener-class>test.MyContextListener</listener-class> 
    </listener> 

<!-- your other web configuration --> 

</web-app> 
+0

perfecto, funcionó como un encanto! Gracias – ptdev

0

La misma respuesta, ponga una llamada en su función principal a la configuración que necesite ejecutar, pero asegúrese de permitir comprobaciones donde no ejecutará esa configuración si ya tiene una instancia de servidor ejecutándose.

Cuestiones relacionadas