如何关闭嵌入式Undertow应用程序?

时间:2015-10-30 06:02:30

标签: java undertow

Undertow documentation中,以下示例显示为一个非常简单的服务器:

public class HelloWorldServer {

    public static void main(final String[] args) {
        Undertow server = Undertow.builder()
                .addHttpListener(8080, "localhost")
                .setHandler(new HttpHandler() {
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");
                        exchange.getResponseSender().send("Hello World");
                    }
                }).build();
        server.start();
    }
}

此服务器如何关闭?有一个server.stop()方法可能会正常关闭服务器,但在此示例中不使用它。是否存在与运行时关联的关闭挂钩,该挂钩将调用server.stop()方法?

1 个答案:

答案 0 :(得分:1)

server.start()是阻止操作。

如果您在另一个线程中启动服务器,则可以从主线程调用server.stop()。例如:

new Thread(() -> { server.start(); }).start();
System.out.print("Server started. Press 'Enter' to stop...");
System.in.read();
server.stop();
System.out.println("Server stopped.");