uri*_*rir 9 java tomcat servlets
我有一个类实现ServletContextListener,在启动时加载一些资源.
当我的逻辑中发生一些不良事件时,这些资源对于我希望在整个启动时失败的方式对应用程序至关重要.
是否有任何命令可以从ServletContextListener.contextInitialized()方法内部执行以停止和失败整个Tomcat启动?
Tom*_*icz 11
尝试指定:
-Dorg.apache.catalina.startup.EXIT_ON_INIT_FAILURE=true
Run Code Online (Sandbox Code Playgroud)
在java运行时选项中,引用官方文档:
如果为true,则在服务器初始化阶段发生异常时服务器将退出.
如果未指定,将使用默认值false.
更新:
如果你想通过代码来做这件事,会有用System.exit()吗?
public class FailFastListener implements ServletContextListener {
private static final Logger log = LoggerFactory.getLogger(FailFastListener.class);
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
try {
//initialization
} catch(Exception e) {
log.error("Sooo bad, shutting down", e);
System.exit(1);
}
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
}
}
Run Code Online (Sandbox Code Playgroud)
您可以使用装饰器模式来包装现有的侦听器,而不会使它们混乱.不知道Tomcat会如何反应......
| 归档时间: |
|
| 查看次数: |
5090 次 |
| 最近记录: |