Solo he hecho esto con Tomcat, pero debería funcionar en Glassfish.
Cree una clase Listener que implemente javax.servlet.ServletContextListener
, luego póngalo en web.xml. Se le notificará cuando su aplicación web se inicie y se destruya.
Una simple clase Listener:
public class Listener implements javax.servlet.ServletContextListener {
MyThread myThread;
public void contextInitialized(ServletContextEvent sce) {
myThread = new MyThread();
myThread.start();
}
public void contextDestroyed(ServletContextEvent sce) {
if (myThread != null) {
myThread.setStop(true);
myThread.interrupt();
}
}
}
Esto va en web.xml después de su última 'context-param' y antes de su primera 'servlet':
<listener>
<listener-class>atis.Listener</listener-class>
</listener>
no saben si este tipo de cosas se recomienda o no, pero me funcionó en el pasado.
Curiosidad: ¿por qué necesitas comenzar un hilo? Siempre me siento mal cuando tienes que iniciar subprocesos en un AppServer ... – Guillaume
El hilo es ejecutar una instancia de HSQL DB Server – systemoutprintln