我有一个应用程序,其中包含一个由主应用程序上下文实例化的 Embedded Jetty。在 Jetty 中,有一个额外的 Spring Web 应用程序上下文已初始化,并使用 HTTP Invoker 导出了一个服务。当前,当嵌入式上下文无法初始化(通过DispatcherSerlvet
)时,Web 应用程序上下文根本不可用,但 Jetty 继续在指定端口上运行。这使得应用程序不一致。如果嵌入式 Spring 上下文无法启动,我喜欢以某种方式拆除主上下文(和应用程序)。这样做的正确方法是什么?是否有任何监听器DispatcherServlet
可以获取有关初始化问题的通知?
问问题
180 次
1 回答
1
我已经设法自己解决了这个问题。JettyServletHolder
和WebAppContext
类现在有一个getUnavailableException()
函数,如果启动成功则返回初始化错误或 null。请参阅JETTY-319 功能请求票。我已经向ServletHolder
管理 Spring 的 bean添加了一个 ID,DispatcherServlet
并且在刷新外部 Spring 上下文之后,我添加了一个针对这个 bean 的简单检查。如果出现错误,我可以随意关闭应用程序。
于 2012-09-10T07:01:43.993 回答