У меня есть ситуация, когда я вызываю метод, который, в свою очередь, запускает асинхронный HTTP-вызов REST (отправляет состояние позже в другую конечную точку), прежде чем продолжить работу.Я хочу, чтобы метод ждал, пока я не получу ответ обратно к конечной точке, проверим статус, который я получил, и продолжу дальше.Я ищу выполнимое решение в Java.Любой псевдокод или реализация будет полезен
видел аналогичный случай @ Облегченный способ ожидания группы асинхронных вызовов Java , но не так много идей о том, легко ли его реализовать.
Подробности реализации
У меня есть конечная точка JAX-RS для обработки асинхронного ответа, как показано ниже
@POST
@Path("/status")
@Consumes("application/xml")
public Response processConfigStatus(@Context UriInfo uriInfo, ConfigStatus configStatus)
{
// process Status got from the async REST call
return ResponseHelper.createNoContentResponse();
}
Класс, который обрабатывает и обрабатывает
Class ProcessData{
public void updateData()
checktStatus(uri);
update();// should wait untill the processConfigStatus() endpoint gives status
}
private checktStatus(String uri){
// makes a REST call to a URI using a JAX-RS webclient or a httpclient this returns HTTP 200 or 204 code immediatley. And then the Server process the request asynchronously and gives back the status to JAX-RS endpoint(/status).
post(uri);
}
}
вызов метода из другого класса
ProcessData pd = new ProcessData()
pd.updateData();