使用`System.exit()`来停止具有嵌入式Jetty服务器的java应用程序是否安全?

时间:2013-07-30 05:28:44

标签: java jetty

我有一个java应用程序,它嵌入了一个jetty服务器来提供http服务。

如果我通过网址访问它:

http://localhost:8080/doStop

它将停止jetty服务器并终止自身。

我有两个选择:

1. calls `myserver.stop()`, which `myserver` is an instance of `org.mortbay.jetty.Server`, and had set `.setStopAtShutdown(true)`
2. just invoke `System.exit()`

我想知道调用System.exit()来停止整个应用程序是否安全?

2 个答案:

答案 0 :(得分:2)

当然,您可以使用System.exit(0)

但是从服务器使用stop方法会更加清晰,并且可以防止意外错误(例如仍然打开请求)。

答案 1 :(得分:1)

System.exit()是安全的,除非你有资源要发布,半生不熟的数据要坚持,或者想要确保服务器在关闭之前完成任何打开请求的服务。

一般来说,System.exit()被认为是有害的,因为您可能会忘记您(或不知道您的同事)与关闭事件有效的关联。