Я изучаю Джерси, и я увидел в книге, что вы можете использовать CompletableFuture (и CompletitionStage) для вызова вашего API без блокировки ввода-вывода.
Но когда я вызываю API с помощью Postman, Я всегда получаю 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());
}
}