我有一个Web应用程序,需要在允许用户使用该应用程序之前进行一些检查。我想抛出一些异常,如果这些检查失败,则取消部署或杀死Web应用程序,但是我不确定是否有任何可以抛出的异常会导致Web应用程序RuntimeException()?
或我必须{ {1}}
强制终止/停止Web应用程序的正确方法是什么?
答案 0 :(得分:4)
在web.xml中加载的servlet的init()方法中抛出的任何异常都将取消部署Web应用程序。
答案 1 :(得分:3)
e.g。在Tomcat中你可以给你的应用程序访问管理器,当你想取消部署你的应用程序时,让它调用http://localhost:8080/manager/undeploy?path=/examples
我想你也可以通过jmx代理实现这一点。
对于JBoss,你可以例如看看jsr-88 implementation(在JEE6中被修剪但是...也许是jboss保留它)或者也使用JMX(即通过RMI左右)
注意:取消部署Web应用程序,因为有人经过验证是很奇怪的,任何下一个用户都无法访问该应用程序
note2:事实上,如前所述,在Web容器中调用System.exit会终止整个容器,从而杀死其中的任何其他应用程序。
答案 2 :(得分:2)
你说
在允许用户使用该应用程序之前进行一些检查
听起来就像一个登录屏幕,可能还有一些额外的环境检查(许可,操作系统......)。
只是不要让用户登录但给他一些提示错误(例如:“购买许可证”)
向我们提供一些关于您的Web应用程序类型的更多信息(它是交互式的吗?它是一个Web服务吗?...)
答案 3 :(得分:1)
不要使用System.exit(0),这也会杀死你的容器! RuntimeException也不会阻止应用程序运行。
我会在某处检查结果,并在需要提供请求时使用它。