是否有在 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
Myeclipse 8.5中tomcat6.0怎么都启动不了,环境变量、Myeclipse中都配置了,每次启动tomcat6.0 都自动关闭