У меня есть контроллер покоя с GetMapping, который выдает тип носителя "Plain_text".Когда происходит исключение в базовом сервисе, оно обрабатывается рекомендацией контроллера, а рекомендация контроллера возвращает объект, который будет сериализован в JSON.
На счастливом пути, когда служба не выдает никаких исключений, я получаю правильный ответ.Но в случае ошибок я получаю исключение с ошибкой «Не удалось найти приемлемое представление».Если я удалил тег производит, контроллер работает нормально.
Есть ли способ при весенней загрузке, чтобы API-интерфейс возвращал простой текстовый тип носителя, а в случае ошибок возвращал ответ Json?
Вот мой код:
@RestController
@RequestMapping("/sample")
public class SampleController() {
@Autowired
SampleService service;
@GetMapping(produces = MediaType.TEXT_PLAIN)
public String getString(){
return service.getString();
}
}
ControllerAdvice:
@RestControllerAdvice
public class SampleControllerAdvice(){
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ExceptionHandler({SampleNotFoundException.class})
public SampleErrorResponse handleException(Exception ex) {
return new SampleErrorResponse(e.getMessage());
}
}