ResponseEntity не производит никакого вывода для завитка или почтальона

Возникла странная проблема, когда я могу отправлять запросы на мой локальный загрузочный веб-API Spring через CURL, т.е.curl -X POST -H "Content-Type: application/json" -d '{"userName":"bob","textMessage":"newMessage","timeOut":500}' http://localhost:8080/chats

curl -X GET -H "Content-Type: application/json" http://localhost:8080/chats/username/bob

curl -X GET -H "Content-Type: application/json" http://localhost:8080/chats/id/b4f1a2c6-74e7-444f-abc9-a72fc61ec515

Вот метод POST

       @PostMapping
    @Async
    public ResponseEntity<String> postMessage(@RequestBody Messages message ){
        if(message.getUserName() == null || message.getTextMessage() == null){
            System.out.println("No Username or TextMessage");
            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
        }
        if(message.getTimeOut() !=null && message.getTimeOut() < 0){
            return new ResponseEntity<>(HttpStatus.BAD_REQUEST);
        }
        String id = UUID.randomUUID().toString();
        message.setTextId(id);
        if(message.getTimeOut() == null) {
            message.setTimeOut(60);
            message.setTimeOutDate(60*1000+System.currentTimeMillis());
        }
        else{
            message.setTimeOutDate(message.getTimeOut()*1000+System.currentTimeMillis());
        }
        System.out.println("Attempting save");
        messagesRepository.save(message);
        return new ResponseEntity<>("id: "+id, HttpStatus.CREATED);

    }

Я не получаю никакого вывода любого рода.

Пожалуйста, порекомендуйте.

Изменить: изображение команды curl ничего не возвращает для публикации, но в бэкэнде мы видим, что она работает

Редактировать 2: я распечатал ответ, и он имеет правильное содержимое, поэтому ошибка - это возврат, который фактически не выводится

1 ответ

Это потому, что у вас есть аннотация на вашем контроллере, который немедленно освобождает поток контейнера и асинхронно обрабатывает вашу задачу в другом потоке.

@Asyncможет использоваться для сценариев «выстрелил и забыл», таких как отправка электронной почты, запуск задания базы данных, какая-то длительная фоновая задача. Вызывающий немедленно получает ответ, в то время как фоновое задание продолжает обработку.

Другие вопросы по тегам