我的特殊设置是一个在Tomcat7下打包为war文件的Java,但问题更为普遍。在我们的webapp中,有多个Servlet通过Servlet3.x @WebServlet注释注册(并且标记为loadOnStartup=1)。问题是,如果其中一个servlet在初始化过程中由于某种正当原因抛出异常而失败,该怎么办?在这个例子中,我们看到了两个问题:
发布于 2015-11-10 07:52:30
您可以将所有可故障启动操作放置在一个ServletContextListener
中,该ServletContextListener
在任何servlet之前初始化。如果ServletContextListener
的init失败,则不会部署整个webapp。
然后,您的servlet可以在初始化时简单地向单例ServletContextListener
请求它们已经初始化的资源。
发布于 2016-04-29 23:14:43
以下是我的做法:
ServletContextListener
中。true or false
)放在上下文context.setAttribute()
中。或者为不同的init操作结果放置多个T/F
属性。servlet
添加一个过滤器来处理所有请求。检查上下文属性,如果启动操作失败,此筛选器将通过重定向或发送错误响应代码来优雅地响应请求,以加载平衡器查询。https://stackoverflow.com/questions/33633948
复制相似问题