首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Tomcat服务器启动时的回调完成

Tomcat服务器启动时的回调完成
EN

Stack Overflow用户
提问于 2014-03-14 05:01:12
回答 2查看 5.5K关注 0票数 3

Spring或Tomcat中是否有任何机制,生命周期事件或回调,在Tomcat服务器启动完成后通知?(我配置了8个web应用程序和队列。我更喜欢在所有应用程序启动后向每个应用程序返回通知。)我知道Spring有应用程序侦听器,它可以在web应用程序初始化后使用。但我不能在我的案例中使用它,因为我更喜欢在所有web应用程序初始化后收到通知。

*编辑*

我已经实现了一个Tomcat侦听器来记录消息,但是我完全不知道在哪里挂接这个侦听器。

我尝试使用Spring创建此bean,并将侦听器添加到web.xml,但两者都不起作用。

下面是我的代码:

代码语言:javascript
复制
public class KPTomcatListener implements LifecycleListener {

    private static final Logger LOG = LoggerFactory.getLogger(KPTomcatListener.class);
    /**
     * All the events of tomcat
     * AFTER_START_EVENT, 
     * AFTER_STOP_EVENT, 
     * BEFORE_START_EVENT, 
     * BEFORE_STOP_EVENT, 
     * DESTROY_EVENT, 
     * INIT_EVENT, 
     * PERIODIC_EVENT, 
     * START_EVENT, 
     * STOP_EVENT
     */
    private static int counter;

    @Override
    public void lifecycleEvent(LifecycleEvent arg0) {
        String event = arg0.getType();
        LOG.debug("Tomcat Envents: " + (++counter) + " :: " + event);
        if(event.equals("AFTER_START_EVENT")) {
            LOG.debug("Hey I've started");
        }
    }

}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-03-14 05:07:43

所有主要的Tomcat组件都实现了org.apache.catalina.Lifecycle,其中包括添加org.apache.catalina.LifecycleListener的能力。听起来你想要HostAFTER_START_EVENT

在server.xml中配置监听程序如下所示:

代码语言:javascript
复制
<Host ... >
  <Listener className="your.package.KPTomcatListener"/>
  <!-- Other nested elements go here -->
</Host>

必须将类打包到JAR中,并将JAR放在Tomcat的lib目录中。

票数 9
EN

Stack Overflow用户

发布于 2018-04-17 20:21:57

如果有人想要以编程的方式来做这件事(例如,如果使用嵌入式Tomcat ):

代码语言:javascript
复制
Tomcat tomcat = new Tomcat();
...
tomcat.getServer().addLifecycleListener(new KPTomcatListener());
tomcat.start()
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22390818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档