哪些例外会在java中杀死您的Web应用程序

时间:2010-06-23 07:48:12

标签: java exception java-ee

我有一个Web应用程序,需要在允许用户使用该应用程序之前进行一些检查。我想抛出一些异常,如果这些检查失败,则取消部署或杀死Web应用程序,但是我不确定是否有任何可以抛出的异常会导致Web应用程序RuntimeException()?或我必须{ {1}}

强制终止/停止Web应用程序的正确方法是什么?

4 个答案:

答案 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)

Assumtion

你说

  

在允许用户使用该应用程序之前进行一些检查

听起来就像一个登录屏幕,可能还有一些额外的环境检查(许可,操作系统......)。

如果是这样的话:

只是不要让用户登录但给他一些提示错误(例如:“购买许可证”)

如果这是假的:

向我们提供一些关于您的Web应用程序类型的更多信息(它是交互式的吗?它是一个Web服务吗?...)

答案 3 :(得分:1)

不要使用System.exit(0),这也会杀死你的容器! RuntimeException也不会阻止应用程序运行。

我会在某处检查结果,并在需要提供请求时使用它。