服务器启动时如何执行类

时间:2014-06-02 06:28:54

标签: java-ee

我在使用Glassfish服务器的eclipse中创建了一个Dynamic webproject,我想在服务器启动时自动执行一个特定的类。该类有一个监听JMS队列的监听器,我该如何实现?我必须在web.xml中配置它吗?如果是这样怎么办?任何代码示例都会非常感激。

2 个答案:

答案 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监听器类,你可以从另一个上下文加载器类中调用它的合适方法,就像我说的那样。