我正在研究Jersey,我在一本书中看到,为了以非阻塞IO方式调用API,可以使用CompletableFuture(和completionstage)。
但是当我用Postman调用API时,我总是得到500。
如果我调试代码,我会看到方法被正确调用。
第一个GET方法是同步的,工作正确。
第二次和第三次返回
错误500
.
我错过了什么?
@Path("/hello")
public class HelloController {
@GET
@Path("/first")
@Produces(MediaType.TEXT_PLAIN)
public String first() {
return "It works";
}
@GET
@Path("/second")
@Produces(MediaType.TEXT_PLAIN)
public CompletionStage<Response> second() {
return CompletableFuture.supplyAsync(() -> Response.accepted().entity("Hello!").build());
}
@GET
@Path("/third")
@Produces(MediaType.TEXT_PLAIN)
public CompletableFuture<Response> third() {
return CompletableFuture.supplyAsync(() -> Response.accepted().entity("Hello!").build());
}
}