【问题标题】:How do I run a method before republishing to JBoss?在重新发布到 JBoss 之前如何运行方法?
【发布时间】:2010-01-13 15:01:28
【问题描述】:

我正在开发一个 J2EE Web 应用程序,我希望能够在“重新发布”过程中运行一个方法(或函数、类,等等 - something)。如果我可以在重新发布期间控制 when 我的函数被调用(之前、期间、之后等),那就太好了,但第一步是让某些东西自动被调用。

作为一个临时技巧,我能够在我的网络应用程序中添加一个按钮,您可以在单击 Eclipse 中的“重新发布”之前单击该按钮。

【问题讨论】:

    标签: eclipse jakarta-ee jboss5.x


    【解决方案1】:

    实现ServletContextListener 挂钩webapp 的启动和关闭。

    public class Config implements ServletContextListener {
    
        public void contextInitialized(ServletContextEvent event) {
            // Do stuff during startup.
        }
    
        public void contextDestroyed(ServletContextEvent event) {
            // Do stuff during shutdown.
        }
    
    }
    

    要让它工作,只需在web.xml注册它。

    <listener>
        <listener-class>com.example.Config</listener-class>
    </listener>
    

    但是,我只是不确定您在发布期间 的确切含义。但您可以查看 Servlet API 或过滤器中可用的其他侦听器。

    【讨论】:

    • 从 Eclipse 运行应用程序时,您可以启动/停止服务器,在调试模式下运行它,或者只是重新发布,这(据我了解)在 JBoss deploy 目录中重建 EAR。 JBoss 看到 EAR 已更改并相应更新。基本上,您使用“重新发布”,因为它比重新启动服务器(在 Eclipse 中定义的东西,而不是物理机器)要快得多。
    • 嗯,好的。你的问题是?编辑:或者你不知道重新发布 webapp = 重启 webapp 上下文?当我说“启动 webapp / 关闭 webapp”时,我并不是说像你想的那样“启动 appserver / 关闭 appserver”。
    猜你喜欢
    • 2017-11-05
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-05
    • 2018-10-08
    • 2021-08-08
    相关资源
    最近更新 更多