在关闭之前让Jetty服务器做一些事情的最佳方法是什么?

时间:2013-07-22 00:07:06

标签: java jetty hook

我有一个正在初始化并启动的Jetty服务器:

    Server server = new Server(50001); 

    MyHandler myHandler = new MyHandler();
    server.setHandler(myHandler);


    // attempt to run the server
    try {
        server.start();
        server.join();
    } catch (Exception e) {
        logger.warning(e.getMessage());
        System.exit(2);
    }

MyHandler有一个名为shutdown的方法,等待任务完成。我希望在服务器关闭之前调用myHandler.shutdown()

我考虑过使用Runtime.getRuntime().addShutdownHook(),但我不确定将myHandler传递给它的最佳方式,我怀疑必须有更清晰的方法来执行此操作。

我正在寻找最佳方法。

谢谢!

1 个答案:

答案 0 :(得分:0)

按照处理程序链向下,您将看到它运行到AbstractLifeCycle,它定义了一些名为doS​​tart()和doStop()的方法。您可以覆盖这些以插入服务器实例的生命周期,因为您将自己添加为服务器的处理程序。这通常适用于任何扩展AbstractLifeCycle或实现Lifecycle的东西,使其成为注册启动和停止类型行为的便捷机制。在处理server.start()时调用doStart(),并在处理server.stop()调用期间调用doStop()。

相关问题