Tôi chỉ làm điều này với Tomcat, nhưng nó sẽ hoạt động trong Glassfish.
Tạo lớp Listener thực hiện javax.servlet.ServletContextListener
, sau đó đặt nó trong web.xml. Nó sẽ được thông báo khi ứng dụng web của bạn bắt đầu và bị hủy.
Một lớp Listener đơn giản:
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();
}
}
}
này đi trong web.xml sau khi cuối cùng 'ngữ cảnh param' và trước khi lần đầu tiên 'servlet' của bạn:
<listener>
<listener-class>atis.Listener</listener-class>
</listener>
Không biết liệu loại điều này được khuyến khích hay không, nhưng nó đã làm việc tốt cho tôi trong quá khứ.
Nguồn
2009-02-10 14:16:01
Sự tò mò: tại sao bạn cần phải bắt đầu một chuỗi? Nó luôn luôn cảm thấy xấu với tôi khi bạn phải bắt đầu chủ đề trong một AppServer ... – Guillaume
Chủ đề là để chạy một thể hiện của HSQL DB Server – systemoutprintln