Я создаю REST-сервис, используя spring-webflux. Мне нужно ответить пользовательским сообщением об ошибке json, когда запрошенный путь не найден или когда произошла какая-либо другая внутренняя ошибка сервера.
У меня есть класс GeneralExceptionHandler
, который реализует ErrorWebExceptionHandler
.
И у меня есть боб для GeneralExceptionHandler
следующим образом.
@Bean
@Order(-2)
public ErrorWebExceptionHandler errorWebExceptionHandler() {
return new GeneralExceptionHandler();
}
Таким образом, мой метод-дескриптор (public Mono<Void> handle(ServerWebExchange serverWebExchange, Throwable throwable)
) в GeneralExceptionHandler
вызывается в случае ошибок, таких как запрошенный путь не найден.
И я могу использовать следующее для отправки пользовательского кода состояния http.
serverWebExchange.getResponse().setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR);
Но я не могу понять, как отправить пользовательский JSON в качестве ответа.
Прежде всего, это правильный способ обработки общих ошибок в Spring webflux? Если да, как я могу ответить с помощью пользовательских объектов JSON?