【问题标题】:Is there a means of executing code during the startup of Apache Tomcat 6.x to perform initialization routines, etc.?是否有在 Apache Tomcat 6.x 启动期间执行代码以执行初始化例程等的方法?
【发布时间】:2011-04-10 11:11:52
【问题描述】:

我想在我的 Tomcat 服务器完成启动并开始提供我的 servlet 之前初始化一个类的全局实例。如果此服务以某种方式初始化失败,我希望整个启动序列也失败(或尽可能接近此;否则服务器运行将毫无意义)。我能做到这一点的最好方法是什么?

【问题讨论】:

    标签: java javascript apache tomcat servlets


    【解决方案1】:

    每个 Web 应用程序都有一个与之关联的 ServletContext。 ServletContext 对象在应用程序启动时创建,在应用程序关闭时销毁。 ServletContext 具有全局范围,类似于应用程序中的全局变量。

    http://www.javabeat.net/tips/178-servletcontextlistener-example.html

    这里有完整的解释

    http://onjava.com/pub/a/onjava/2001/04/12/listeners.html

    【讨论】:

    • 这就是我所需要的。感谢您提供快速简洁的帮助!
    • 您可以将答案标记为已接受吗?当您提出要求时,这将有助于让其他人做出回应
    【解决方案2】:

    你可以做的一件事是实现一个 servlet,它在它的 init() 方法中初始化你需要的所有东西(如果失败,可能会调用 System.exit(),我不知道你是否有权这样做雄猫)。然后,您将在 web.xml 中使用 <load-on-startup> 加载它以指定初始化顺序。

    【讨论】:

    • 不是一个好的解决方案。所有过滤器都在所有 servlet 之前初始化。因此,如果问题中的类,过滤器将在初始化之前初始化。
    猜你喜欢
    • 2012-07-13
    • 2021-10-01
    • 2012-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多