我在使用Glassfish服务器的eclipse中创建了一个Dynamic webproject,我想在服务器启动时自动执行一个特定的类。该类有一个监听JMS队列的监听器,我该如何实现?我必须在web.xml中配置它吗?如果是这样怎么办?任何代码示例都会非常感激。
答案 0 :(得分:2)
有很多方法可以实现这一目标。您可以创建一个Startup EJB Singleton。像这样:
@Singleton
@Startup
public class MyStartupBean {
@PostConstruct
private void init() {
LOG.info("Initializing startup bean");
// Do stuff
}
}
答案 1 :(得分:1)
作为一种解决方案,您可以拥有一个实现javax.servlet.ServletContextListener
的类并在web.xml中注册它
<listener>
<listener-class>YourListener</listener-class>
</listener>
ServletContextListener
有两种方法:
public void contextInitialized ( ServletContextEvent sce );
public void contextDestroyed ( ServletContextEvent sce );
因此,当您的Web项目启动时,此类会自动运行 如果你不想改变你的JMS监听器类,你可以从另一个上下文加载器类中调用它的合适方法,就像我说的那样。