Не удается заставить CompletableFuture и Spring REST работать вместе - PullRequest
0 голосов
/ 28 февраля 2019

Я пытался сделать простой бэкэнд для входа пользователя.

Работает нормально, если я не использую потоки, но когда я пытаюсь реализовать многопоточность, по какой-то причине он прерывается.

Сейчас я просто пытаюсь сделать что-то столь же простое, как получение информации всех пользователей из таблицы User в формате JSON.Проблема в том, что контроллер Rest ничего не возвращает почтальону, хотя dbActions.getAll() возвращает правильный список.

Нет ошибок, нет исключений, ничего.Я мог бы действительно использовать некоторую помощь.Ниже приведены части моего кода, которые я пытаюсь заставить работать.

Контроллер отдыха:

@Async
@RequestMapping(value="/view", method =RequestMethod.GET)
public List<User> viewAll() {
    try {
        List<User> list = new ArrayList<>();
        list = dbActions.getAll();
        return list;
    }catch(Exception e) {
        e.printStackTrace();
        return null;
    }
}

Служба dbActions:

public List<User> getAll() {
    List<User> results = new ArrayList<>();
    CompletableFuture<Void> future;
    try {
        future = CompletableFuture.runAsync(new Runnable() {
            public void run() {
                userRepo.findAll().forEach(results::add);
            }
        });
        future.get();
        return results;
    } catch (Exception e) {
        e.printStackTrace();
        return results;
    }
}

1 Ответ

0 голосов
/ 28 февраля 2019

Попробуйте удалить аннотацию @Async из метода viewAll()

...