【问题标题】:Get Jetty to gracefully shut down a failed-to-start webapp context让 Jetty 优雅地关闭启动失败的 webapp 上下文
【发布时间】:2018-06-18 10:19:26
【问题描述】:

我有一个简单的 Jetty 服务器,它从 web.xml 运行一个 webapp。该文件有一些 servlet 和一个 ServletContextListener。当一切正常启动时,一切正常,包括退出时正常关机。

但是,如果由于某种原因启动该 webapp 失败,我希望服务器仍能正常关闭。这包括调用相关ServletContextListenerscontextDestroyed 方法。

WebAppContext context = ...;
Server server = ...;
server.start();

if (!context.isAvailable()) {
  // startup failed
  server.stop(); // I would expect this to call contextDestroyed
}

如何让 Jetty 自行正确清理?

如果重要的话,当在 Tomcat 中运行与 war 相同的 Web 应用程序时,它可以正常工作,并且实际上会在启动失败时正确关闭。

【问题讨论】:

    标签: java jetty


    【解决方案1】:

    你没有说你正在运行什么版本的 Jetty。我检查了最新版本的码头,并且行为符合预期:如果 servlet 未能正确初始化,则 webapp 被标记为不可用,并且当调用 server.stop() 时, contextDestroy 侦听器方法是叫。能否提供更多详细信息,例如码头版本、日志输出、webapp 启动失败的时间点等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多