Spring MVC ResponseEntity Hystrix откат
У меня есть метод обслуживания, который возвращает ResponseEntity<List<Attachment>>
и его Хистрикс fallback
Метод также должен возвращать ResponseEntity<List<Attachment>>
,
Проблема в том, что мне нужно возвращать сообщение String, которое разъясняет ошибку пользователю, а не возвращать новое Arraylist<>()
- вот мой метод
@Override
@HystrixCommand(fallbackMethod = "getAttachmentsFallback")
public ResponseEntity<List<AttachmentDto>> getAttachments(IAttachable entity) {
List<AttachmentDto> attachments = client.getAttachments(entity.getAttachableId(), entity.getClassName(),
entity.getAppName());
return new ResponseEntity<List<AttachmentDto>>(attachments, HttpStatus.OK);
}
И это его запасной вариант
public ResponseEntity<List<AttachmentDto>> getAttachmentsFallback(IAttachable entity, Throwable e) {
//I need to return a String instead of the new Arraylist<AttachmentDto>()
return new ResponseEntity<List<AttachmentDto>>(new ArrayList<AttachmentDto>(), HttpStatus.INTERNAL_SERVER_ERROR);
}
2 ответа
Решение
Я сделал это, работая ResponseEntity
без аргументов вместо ResponseEntity<List<AttachmentDto>>
Спасибо, парни
Просто используйте:
ResponseEntity<Object>
это будет работать для любого типа. Потому что Object - самый верхний класс, определенный в java.lang.
вместо:
ResponseEntity<List<AttachmentDto>>