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
может использоваться для сценариев «выстрелил и забыл», таких как отправка электронной почты, запуск задания базы данных, какая-то длительная фоновая задача. Вызывающий немедленно получает ответ, в то время как фоновое задание продолжает обработку.