作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试验证应用程序启动时的一些条件,例如系统中是否存在关键文件。为此,我使用了 SerlvetContextListener,它会在启动时测试一系列条件。
如果不满足这些条件中的任何一个,我怎样才能使应用程序拒绝在 Tomcat 中部署?我可以抛出一个异常,并在日志中捕获它,但我希望应用程序根本不启动。即使 Tomcat 服务启动失败也是一种解决方案。
什么是最简单的方法?我应该尝试连接到 Tomcat 管理器并取消部署该应用程序吗?
最佳答案
嗯...
根据您最初的问题,如果某些文件不存在(或不满足其他条件),您希望应用程序“根本不启动”。从逻辑上讲,条件检查不可能是应用程序的一部分(如果检查是作为应用程序的一部分进行的——比如说,在启动时——那么必须启动应用程序才能进行这些检查)发生)。
所以:
如果您不希望应用程序启动根本除非满足某些条件,那么您的解决方案必须在应用程序外部。例如,您可以编写自己的 Tomcat 启动脚本,它会先检查您的条件,然后才启动 Tomcat。
如果您不介意应用程序启动和执行检查,那么 ServletContextListener
正是您应该利用的。从 contextInitialized()
中抛出异常将导致应用程序“无法”处理请求。或者,如果检查未通过,您可以与 Tomcat 的 MBean 通信以停止应用程序。
关于java - 如何在 Tomcat 中中断部署/拒绝应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14697174/
我是一名优秀的程序员,十分优秀!