【问题标题】:Tomcat application deployment listenerTomcat 应用程序部署监听器
【发布时间】:2013-04-09 07:35:30
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: java tomcat


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 2018-07-17
      • 2020-07-18
      • 2016-10-06
      • 1970-01-01
      相关资源
      最近更新 更多