我有一个应用程序,它包含一个由主应用程序上下文实例化的嵌入式Jetty。在Jetty中,初始化了一个额外的Spring web应用程序上下文,并使用HTTP调用器导出了一个服务。目前,当嵌入的上下文无法初始化(通过DispatcherSerlvet
)时,web应用程序上下文根本不可用,但是Jetty继续在指定的端口上运行。这使得应用程序不一致。如果嵌入的Spring上下文无法启动,我喜欢以某种方式删除主上下文(和应用程序)。执行此操作的正确方法是什么?DispatcherServlet
有没有监听器可以收到初始化问题的通知?
发布于 2012-09-10 15:01:44
我已经设法自己解决了这个问题。Jetty的ServletHolder
和WebAppContext
类现在有一个getUnavailableException()
函数,该函数返回初始化错误,如果启动成功,则返回null。请参阅JETTY-319 feature request ticket。我已经向Spring添加了一个ID,该bean管理ServletHolder
的DispatcherServlet
,并且在刷新外部Spring之后,我添加了对该bean的简单检查。在出现错误时,我可以随心所欲地拆卸应用程序。
https://stackoverflow.com/questions/12316573
复制相似问题