我有一个嵌入式jetty服务器,我想异步处理所有请求,并使用ThreadPoolExecutor处理它们,但jetty正在调用相同的请求两次,因为当我再次使用request.startAsync()
启动上下文时,它抛出一个IllegalStateException。如果我使用request.setHandled(true)
,它工作得很好,但这不是正确的方法,因为这个标志应该在响应发送回来后设置。我正在使用contextandler类来配置端点。
与AsyncContext
的异步处理将使用每个规格的DispatcherType
机制。通过ContextHandler
了解每次执行的request.getDispatcherType()
(例如:首先是REQUEST
,接下来可能是ASYNC
)
此外,您需要使用ContextHandler
,而不是AbstractHandler
来正确支持异步处理。