如何使DispatcherServlet初始化错误从嵌入式Jetty中冒出来?

时间:2012-09-07 10:47:01

标签: spring error-handling jetty

我有一个应用程序,其中包含由主应用程序上下文实例化的Embedded Jetty。在Jetty中,初始化了一个额外的Spring Web应用程序上下文,并使用HTTP Invoker导出服务。 目前,当嵌入式上下文无法初始化(通过DispatcherSerlvet)时,Web应用程序上下文根本不可用,但Jetty继续在指定端口上运行。这使得应用程序不一致。如果嵌入式Spring上下文无法启动,我喜欢以某种方式拆除主上下文(和应用程序)。这样做的正确方法是什么?是否有DispatcherServlet的监听器可以获得有关初始化问题的通知?

1 个答案:

答案 0 :(得分:1)

我已经设法自己解决了这个问题。 Jetty的ServletHolderWebAppContext类现在有一个getUnavailableException()函数返回初始化错误,如果启动成功则返回null。请参阅JETTY-319 feature request ticket。我已经为管理Spring的ServletHolder的{​​{1}} bean添加了一个ID,并且在刷新外部Spring上下文后,我添加了一个针对这个bean的简单检查。如果出现错误,我可以按照我的意愿拆除应用程序。