如何在Dropwizard中使用Servlet 3.0异步方法?

时间:2014-07-09 16:38:55

标签: rest asynchronous jersey servlet-3.0 dropwizard

我有一个如下所示的资源方法:

@Path("hard")
@GET
public Response sayHello2(@Context HttpServletRequest request)
        throws InterruptedException {
    AsyncContext ac = request.startAsync();
    Thread.sleep(1000);
    ac.complete();

    return Response.ok("hello world hard").build();
}

看起来代码运行,但我似乎无法验证async在这种情况下是否正常工作?我是否正确使用了这个?

1 个答案:

答案 0 :(得分:0)

我没有dropwizard体验但是在异步servlet中你不应该通过线程休眠来阻止servlet线程。在调用request.startAsync()之后,可以使用servlet中的ExecutorService将工作委托给另一个线程。您应该将异步上下文传递给工作线程,并在完成后调用ac.complete()。