Java 让Jetty优雅地关闭无法启动的webapp上下文
我有一个简单的Jetty服务器,它从web.xml运行一个webapp。该文件包含一些servlet和一个ServletContextListener。当一切正常启动时,这一切都会完美运行,包括在退出时优雅地关闭 但是,如果由于某种原因启动webapp失败,我希望服务器仍能正常关闭。这包括调用相关ServletContextListeners的contextDestroyed方法 我如何让Jetty在其自身之后进行适当清理Java 让Jetty优雅地关闭无法启动的webapp上下文,java,jetty,Java,Jetty,我有一个简单的Jetty服务器,它从web.xml运行一个webapp。该文件包含一些servlet和一个ServletContextListener。当一切正常启动时,这一切都会完美运行,包括在退出时优雅地关闭 但是,如果由于某种原因启动webapp失败,我希望服务器仍能正常关闭。这包括调用相关ServletContextListeners的contextDestroyed方法 我如何让Jetty在其自身之后进行适当清理 如果重要的话,当在Tomcat中运行与war相同的web应用程序时,它工
如果重要的话,当在Tomcat中运行与war相同的web应用程序时,它工作正常,并且在启动失败时会正确关闭。您没有说明正在运行的Jetty的版本。我已经对照jetty的最新版本进行了检查,其行为与预期的一样:如果servlet未能正确初始化,那么webapp将标记为不可用,并且在调用server.stop时,将调用contextDestroy侦听器方法。您能否提供更多详细信息,如jetty版本、日志输出、webapp启动失败的时间点等
WebAppContext context = ...;
Server server = ...;
server.start();
if (!context.isAvailable()) {
// startup failed
server.stop(); // I would expect this to call contextDestroyed
}