【问题标题】:Java EE Enterprise Application: perform some action on deploy/startup [duplicate]Java EE 企业应用程序:在部署/启动时执行一些操作 [重复]
【发布时间】:2011-05-25 07:17:06
【问题描述】:

我想在我的应用程序(具有业务逻辑、EJB 和客户端、Web 的企业应用程序)部署后立即执行一些操作。 例如,我想让某个实体处于持久状态,或者创建一个文件。 我该怎么做?

谢谢。

【问题讨论】:

    标签: java deployment jakarta-ee entity startup


    【解决方案1】:

    配置SerlvetContextListener 并覆盖contextInitilized()

    在您的 Web 应用程序描述中,web.xml

    <web-app ...>
        <listener>
            <listener-class>com.someCompany.AppNameServletContextListener</listener-class>
        </listener>
    </web-app
    

    package com.someCompany;
    import javax.servlet.ServletContextEvent;
    import javax.servlet.ServletContextListener;
    
    public class AppNameServletContextListener implements ServletContextListener{
    
        @Override
        public void contextDestroyed(ServletContextEvent arg0) {
            System.out.println("ServletContextListener destroyed");
        }
    
        @Override
        public void contextInitialized(ServletContextEvent arg0) {
            System.out.println("ServletContextListener started");   
                    // do the things here 
        }
    }
    

    【讨论】:

    • 非常感谢!嗯...我是 JEE 的一个小新手。如何配置 ContextListener?
    • @Mauro 按 F5 ,添加信息
    • 非常感谢!我要试试……我会告诉你的。
    • Easier Now... 添加到Servlet 3.0 spec@WebListener 注释现在可以为您提供这种行为,而无需编辑web.xml文件。看到这个有启发性的answer by BalusC
    【解决方案2】:

    “默认”方式是使用带有 init() 方法的 servlet。然后在 servlet-descriptor 中将此 servlet 标记为 load-on-startup 1:

    例子:

    <servlet-name>Seam Resource Servlet</servlet-name>
       <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>
       <load-on-startup>1</load-on-startup>
    </servlet>
    

    一旦部署了 servlet(在部署 EJB 之后发生),就会调用 init() 方法,您就可以执行所需的任务了。

    【讨论】:

      【解决方案3】:

      在您耳中使用当前的 Web 应用程序时,最简单的方法是使用 ServletContextListener,否则在 EJB 3.1 中您可以使用自动计时器或启动单例会话 bean。

      【讨论】:

        猜你喜欢
        • 2014-06-29
        • 1970-01-01
        • 1970-01-01
        • 2012-06-21
        • 1970-01-01
        • 1970-01-01
        • 2015-12-21
        • 2023-04-10
        • 2013-12-15
        相关资源
        最近更新 更多