Java HttpHandler上的非阻塞HTTP请求

Java HttpHandler上的非阻塞HTTP请求,java,undertow,Java,Undertow,据我所知,如果在底层HTTP处理程序上有任何阻塞操作,我必须遵循以下模式: public void handleRequest(final HttpServerExchange exchange) throws Exception { if (exchange.isInIoThread()) { exchange.dispatch(this); return; } // Do any blocking action like normal http

据我所知,如果在底层HTTP处理程序上有任何阻塞操作,我必须遵循以下模式:

public void handleRequest(final HttpServerExchange exchange) throws Exception {
    if (exchange.isInIoThread()) {
    exchange.dispatch(this);
       return;
    }
    // Do any blocking action like normal http calls...
}
但是我使用awesome
org.asynchttpclient
库来进行如下异步HTTP调用:

public void handleRequest(HttpServerExchange exchange) throws Exception {
    new DefaultAsyncHttpClient().prepareGet("http://some/url").execute()
            .toCompletableFuture()
            .thenApply(r -> {
                exchange.getResponseSender().send("OK");
                return r;
            });
}
问题是exchange从不发送“OK”输出(“OK”不会打印到响应中),当我试图编写它时,它似乎已经关闭了

不管你怎么处理这种情况。总的来说,它比解决方案一有什么优势吗