3

我想知道如何监听 Tomcat Web 应用程序部署。我希望每次从容器中取消部署或部署应用程序时都调用我的侦听器。

我已经调查了一下,发现一些监听器,即LifecycleListener可以通过 JMX 注册。但不幸的是,这个监听器对我来说还不够,因为它仅在引擎/主机/上下文处于关闭或启动过程时触发事件。

ContainerListener那基本上通知容器关闭和启动事件相同。

所以,我的问题基本上是:我应该实现哪个接口以及如何将它注册到 tomcat 以便在每次部署新应用程序时得到通知?

4

1 回答 1

1

servlet 上下文初始化/销毁

import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;

import javax.servlet.ServletContextListener;
import javax.servlet.ServletContextEvent;

public class AppContextListener implements ServletContextListener {

    private static final Log logger = LogFactory.getLog(AppContextListener.class);

    @Override
    public void contextDestroyed(ServletContextEvent e) {
        logger.warn("AppContext Delete: " + e.getServletContext().getContextPath());
    }

    @Override
    public void contextInitialized(ServletContextEvent e) {
        logger.warn("AppContext Create: " + e.getServletContext().getContextPath());
    }

}

并放入 tomcat/conf/web.xml

   <listener>
     <listener-class>AppContextListener</listener-class>
   </listener>
于 2016-08-03T13:05:23.357 回答