gpt4 book ai didi

java - 是否可以使 Java Servlet 异常阻止应用程序启动?

转载 作者:搜寻专家 更新时间:2023-11-01 03:07:01 24 4
gpt4 key购买 nike

我有一个标记为 load-on-startup 的 Java Servlet,并且已经实现了 init()。作为 init() 逻辑的一部分,有一个对 validate() 的调用,它确定事物是否有效。

我的问题是,如果 validate() 确定情况不正常,我想阻止该应用启动,作为需要修复某些问题的警报。我尝试抛出一个 ServletException,当该信息通过管道传输到我的控制台时,我仍然能够向应用程序发送流量并且它做出了响应。

最后,我的双手在时间上有些束手无策。我的 servlet 扩展了一个基类,它设置了我要验证的内容。

如果有解决方案,我需要它在 Tomcat 和 WebLogic 上运行。

最佳答案

正如上面 Luiggi Mendoza 所指出的,Web 应用程序范围的初始化的正确位置是在 ServletContextListener 中,而不是依赖于单个 servlet 的 init 方法。

当从监听器的 contextInitialized 方法抛出异常(运行时异常)时,Web 应用程序上下文被破坏(至少在 Tomcat 6 中)。

您最好的出价是将初始化逻辑移至 ServletContextListener(您可以为每个 Web 应用程序定义多个监听器,并且它们按照它们在 web.xml 中注册的顺序执行)。并且只在 servlet 中保留请求处理逻辑。

关于java - 是否可以使 Java Servlet 异常阻止应用程序启动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18852780/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com