Java 停止嵌入式下拖时,程序结束,退出代码为1

Java 停止嵌入式下拖时,程序结束,退出代码为1,java,undertow,Java,Undertow,在我的应用程序中,我在程序main方法中启动嵌入式下拖。在所有教程中,都没有使用停止方法。如果我从终端或IntelliJ运行应用程序并停止它(CTRL+C或停止图标),我会看到 进程已完成,退出代码为1 我试着加上 Runtime.getRuntime().addShutdownHook(new Thread(undertow::stop)); 但结果是一样的 我应该在哪里调用stopmethod?这里有一个方法,可以在执行控制台日志记录后将其更改为停止(只是一个示例): public cla

在我的应用程序中,我在程序main方法中启动嵌入式下拖。在所有教程中,都没有使用停止方法。如果我从终端或IntelliJ运行应用程序并停止它(CTRL+C或停止图标),我会看到

进程已完成,退出代码为1

我试着加上

Runtime.getRuntime().addShutdownHook(new Thread(undertow::stop));
但结果是一样的

我应该在哪里调用
stop
method?

这里有一个方法,可以在执行控制台日志记录后将其更改为停止(只是一个示例):

public class HelloWorldServer {

    public static void main(final String[] args) {
        Undertow server = Undertow.builder()                                                    //Undertow builder
                .addListener(8080, "localhost")                                                 //Listener binding
                .setHandler(new HttpHandler() {                                                 //Default Handler
                    @Override
                    public void handleRequest(final HttpServerExchange exchange) throws Exception {
                        exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "text/plain");  //Response Headers
                        exchange.getResponseSender().send("Hello World");                       //Response Sender
                    }
                }).build();
        server.start();
        System.out.println("I did some work for you..Rest is to dig deeper!");
        server.stop();
    }

}
server.stop()
适用于您,其中可以定义为查看您如何实际启动服务器和执行的更多上下文。