Tomcat服务器启动上的回调已完成

在Tomcat服务器启动完成后,Spring或Tomcat中是否有任何机制,生命周期事件或回调来通知?(我配置了8个Web应用程序和队列。我希望在所有应用程序启动后将通知返回给每个应用程序。)我知道Spring具有应用程序侦听器,一旦Web应用程序初始化就可以使用它。但是我不能使用它,因为我希望在所有Web应用程序初始化后收到通知。

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

我尝试使用Spring创建此bean,并且还将侦听器添加到web.xml中都无法正常工作。

这是我的代码:

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");

}

}

}

回答:

所有主要的Tomcat组件均实现org.apache.catalina.Lifecycle,其中包括添加的功能org.apache.catalina.LifecycleListener。听起来像是您想要AFTER_START_EVENTHost

您可以在server.xml中配置监听器,如下所示:

<Host ... >

<Listener className="your.package.KPTomcatListener"/>

<!-- Other nested elements go here -->

</Host>

该类必须打包在JAR中,并且JAR必须放置在Tomcat的lib目录中。

以上是 Tomcat服务器启动上的回调已完成 的全部内容, 来源链接: utcz.com/qa/399241.html

回到顶部