Dropwizard:如何以编程方式关闭服务(进程中)?

时间:2014-11-28 15:30:10

标签: java dropwizard

以编程方式关闭Dropwizard服务的最佳做法是什么,例如,如果在我希望终止Dropwizard服务的任何线程中发生未捕获的异常?


供参考: StackOverflow上类似但无关的问题:

此问题Dropwizard: How to stop service programmatically涉及对您的服务进行单元测试

此问题How to shutdown dropwizard application?涉及如何在进程外关闭服务。

2 个答案:

答案 0 :(得分:4)

您可以像<fieldset> <ul class="nav nav-tabs"> ::before <li class> <a href="#editor" data-toggle="tab">Content</a> </li> <li class="active"> <a href="#publishing" data-toggle="tab">Publishing</a> </li> <li class> <a href="#language" data-toggle="tab">Language</a> </li> <li class> <a href="#metadata" data-toggle="tab">Metadata</a> </li> ::after </ul> DropwizardClientRule那样执行此操作:通过调用DropwizardAppRule停止Jetty服务。

要获取Jetty实例,您必须注册一个生命周期回调处理程序:

org.eclipse.jetty.server.Server#stop()

答案 1 :(得分:1)

我认为那里还没有最好的做法。

System.exit(0);

这就是CTRL-C的作用。它调用关闭挂钩并导致正常关闭。