使用AbstractHandler的Jetty异步处理



我有一个嵌入式jetty服务器,我想异步处理所有请求,并使用ThreadPoolExecutor处理它们,但jetty正在调用相同的请求两次,因为当我再次使用request.startAsync()启动上下文时,它抛出一个IllegalStateException。如果我使用request.setHandled(true),它工作得很好,但这不是正确的方法,因为这个标志应该在响应发送回来后设置。我正在使用contextandler类来配置端点。

AsyncContext的异步处理将使用每个规格的DispatcherType机制。通过ContextHandler了解每次执行的request.getDispatcherType()(例如:首先是REQUEST,接下来可能是ASYNC)

此外,您需要使用ContextHandler,而不是AbstractHandler来正确支持异步处理。

最新更新