我正在学习泽西岛,我在一本书中看到可以使用CompletableFuture(和CompletitionStage)来以非阻塞IO方式调用您的API。
但是当我用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());
}
}