L'ho fatto solo con Tomcat, ma dovrebbe funzionare in Glassfish.
Creare una classe Listener che implementa javax.servlet.ServletContextListener
, quindi inserirla in web.xml. Verrà notificato quando la tua app Web viene avviata e distrutta.
Una semplice classe 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();
}
}
}
Questo va in web.xml dopo l'ultima 'context-param' e prima del primo 'servlet':
<listener>
<listener-class>atis.Listener</listener-class>
</listener>
non so se questo tipo di cosa è raccomandato o no, ma ha funzionato bene per me in passato.
fonte
2009-02-10 14:16:01
Curiosità: perché è necessario iniziare una discussione? Mi fa sempre male quando devi avviare i thread in un AppServer ... – Guillaume
Il thread deve eseguire un'istanza di HSQL DB Server – systemoutprintln