Я пытаюсь разработать приложение API примеров REST, используя Spring Boot, чтобы проверить мою клиентскую библиотеку Java (которая представляет собой преобразование клиента JS). Клиент Java выполняет некоторые асинхронные задачи и возвращает ответ как обратный вызов.@Async
public void initializeUser(InitRequest initRequest) {
String BASE_URL = "http://sample_url";
client.initUser(BASE_URL, initRequest, new ResponseCallback() {
@Override
public void onSuccess(@NonNull InitRequest arg0) {
// Return arg0 to controller
System.out.println("User Initialized: " + arg0.getId());
}
@Override
public void onError(@NonNull ResponseBody error) {
// Return error to controller
System.out.println("User Initialize failed");
}
@Override
public void validationError(@NonNull String arg0) {
// return validationError to controller
// TODO Auto-generated method stub
}
});
}
< /code>
Здесь инициатор - это метод, реализованный в моем клиенте. Когда я называю этот метод из моего контроллера. Возврат контроллера до завершения фактического запроса, и я не могу увидеть никакого ответа в почте. < /p>
Вот метод контроллера.@RequestMapping(method=RequestMethod.POST, value = "/init" )
public void initUser( @RequestBody InitRequest initRequest) {
experimentServices.initializeUser(initRequest);
// wait for request to finish and send response to user
}
< /code>
Как в JavaScript Я могу использовать обещания или асинхронность /ждать, чтобы подождать, пока службы дадут ответ, прежде чем вернуться к пользователю. (Сервисы возвращает некоторые данные в контроллер, который затем относится к ответу на конечного пользователя). < /P>
2) Методы Java требуют конкретного ответа на возврат, в то время как службы могут предоставлять ошибку, валидацию или объект успешного ответа. Есть ли способ правильно обработать все это в одной функции? < /P>
Любые ссылки или документация помогут.
Спасибо < /p>
Подробнее здесь: https://stackoverflow.com/questions/609 ... n-services