我有一个Java程序/线程,我想部署到Application Server(GlassFish).该线程应作为"服务"运行,该服务在Application Server启动时启动,在Application Server关闭时停止.
我该怎么做呢?它实际上不是会话Bean或MDB.这只是一个主题.
我只用Tomcat做过这个,但它应该在Glassfish中运行.
创建一个实现的Listener类javax.servlet.ServletContextListener
,然后将其放在web.xml中.当您的Web应用程序启动并销毁时,它会收到通知.
一个简单的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(); } } }
这是在你的上一个'context-param'之后和你的第一个'servlet'之前的web.xml中:
atis.Listener
不知道是否推荐这种东西,但过去它对我来说效果很好.