有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java进程在停止嵌入式下拖时结束,退出代码为1

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

Process finished with exit code 1

我试着加上

Runtime.getRuntime().addShutdownHook(new Thread(undertow::stop));

但结果是一样的

我应该在哪里调用stop方法


共 (1) 个答案

  1. # 1 楼答案

    下面是一个sample builder api,在执行控制台日志记录后,可以对其进行更改(只是一个示例)以停止:

    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();
        }
    
    }