【问题标题】:How to specify LifeCycle Listener listener class in web.xml?如何在 web.xml 中指定 LifeCycle Listener 侦听器类?
【发布时间】:2016-04-28 11:45:56
【问题描述】:

我想在服务器成功启动后得到通知。为此我在 web.xml 中添加了以下内容

<listener>    <listener-class>com.server.container.Listeners</listener-class> </listener>

Listeners 是实现 org.apache.catalina.LifecycleListener 的类。

这是正确的吗?截至目前,我在服务器启动结束时没有收到任何通知。我需要做任何额外的事情吗?

【问题讨论】:

    标签: java tomcat tomcat7


    【解决方案1】:

    在 J2EE 中,每当服务器上发生某些操作(上下文创建、销毁、请求或会话属性添加、删除等)时,侦听器都会通知。

    请在下面找到以下示例侦听器代码:

    ApplicationListener 类(在您的项目中):-

    package com.myproject;
    
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    
    public class ApplicationListener implements ServletContextListener {
    
        @Override
        public void contextInitialized(ServletContextEvent arg0) {
            System.out.println(" Server Starting !!!!!! ");
    
            //Any other code you can place here
        }
    
        @Override
        public void contextDestroyed(ServletContextEvent arg0) {
            System.out.println(" Server Shutting down !!!!!! ");
        }
    }
    

    web.xml 更改: 将以下代码添加到您的 web.xml

    <listener>
            <listener-class>
                 com.myproject.ApplicationListener 
            </listener-class>
       </listener>
    

    另外,请确保您的类路径中有“servlet-api.jar”文件。

    【讨论】:

    • 我想在服务器启动完成后得到通知。上面的 contextInitialized 会在启动过程中被调用来初始化我们的 contexts 类。我想在服务器启动完成后收到通知。有可能吗
    • 请问,具体的操作是什么,你想在服务器启动后对通知做什么?
    • Yes.. 服务器启动后,我需要通过代码创建对本地主机(相同)服务器的 http 请求。
    • 编写一个 StartupServlet 类,在 StartupServlet 的 init() 方法中,您可以放置​​您的代码(即创建 http 请求)。确保为 StartupServlet 添加 1,这意味着在服务器启动后将立即调用此 servlet init()。
    猜你喜欢
    • 2010-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-09
    • 2016-03-08
    • 2014-04-19
    • 1970-01-01
    相关资源
    最近更新 更多