是否有在 Apache Tomcat 6.x 启动期间执行代码以执行初始化例程等的方法?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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 之前初始化。因此,如果问题中的类,过滤器将在初始化之前初始化。

以上是关于是否有在 Apache Tomcat 6.x 启动期间执行代码以执行初始化例程等的方法?的主要内容,如果未能解决你的问题,请参考以下文章

IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目

启动tomcat就报错:java.lang.ClassNotFoundException: org.apache.commons.beanutils.Converter

启动tomcat报错

Myeclipse 8.5中tomcat6.0怎么都启动不了,环境变量、Myeclipse中都配置了,每次启动tomcat6.0 都自动关闭

启动 Apache Tomcat 7 时指定 JRE/JDK

环境搭建--apache/tomcat/nginx