Java Tomcat:从webapp中侦听服务器生命周期事件

Java Tomcat:从webapp中侦听服务器生命周期事件,java,tomcat,Java,Tomcat,我想在我的webapp中收听tomcat生命周期事件。我尝试了以下代码 try { MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0); ObjectName name = new ObjectName("Catalina", "type", "Server"); Server server = (Server) mBeanServer.getAttribute(name, "

我想在我的webapp中收听tomcat生命周期事件。我尝试了以下代码

try {
    MBeanServer mBeanServer = MBeanServerFactory.findMBeanServer(null).get(0);
    ObjectName name = new ObjectName("Catalina", "type", "Server");
    Server server = (Server) mBeanServer.getAttribute(name, "managedResource");
    server.addLifecycleListener(new LifecycleListener() {
        @Override
        public void lifecycleEvent(LifecycleEvent event) {
            logger.info("lifecycle listener called. event: " + event.getType());
        }
    });
} catch (Exception e) {
    //log error
}
我可以成功地获取
服务器
对象并注册生命周期事件,但代码没有接收任何生命周期事件

我通过迭代检查
服务器
对象中所有服务和连接器的状态,其中有一些组件处于
启动
状态。因此,我应该接收他们的
start
事件

有人知道怎么回事吗