具体来说,当我的Web应用程序无法初始化时(由于配置错误),我希望Tomcat中止启动.
我试图使用Tomcat关闭端口.当我的网络应用程序启动时,这还没有准备好.
-Dorg.apache.catalina.startup.EXIT_ON_INIT_FAILURE = true,不起作用.Tomcat启动就好了.
抛出未被捕获的异常.我试过抛出异常.Tomcat仍然正确初始化,但我的Web应用程序处于非功能状态.
使用Tomcat JMX API.没有任何关闭方法会导致Tomcat关闭.
到目前为止,我唯一的另一个选择是System.exit(-1).这确实有效,但我担心对Tomcat这样做会导致问题.
Tomcat旨在抵御那些无法启动的编写错误的应用程序.
org.apache.catalina.startup.EXIT_ON_INIT_FAILURE用于在Tomcat的某个组件(例如其中一个连接器)未启动时停止Tomcat(例如,因为端口正在使用中).
System.exit()是丑陋的,但它会起作用,就Tomcat来说它是安全的(至于kill -9).应用程序可能不喜欢这种相当残酷的关闭方法.
有一种Tomcat特定的方法可以更干净地完成这项工作.将自定义LifecycleListener添加到服务器组件并让它响应AFTER_START_EVENT.让侦听器将Container层次结构从服务器导航到上下文[服务器 - >服务 - >引擎 - 主机 - >上下文],并检查每个上下文是否处于STARTED状态.如果没有,请在服务器上调用stop()然后destroy().
| 归档时间: |
|
| 查看次数: |
1514 次 |
| 最近记录: |