Проверка Spring Bean с исключением ConstraintDeclarationException

Я получаю javax.validation.ConstraintDeclarationException: HV000197: не найдено средство извлечения значений для параметра типа «T» типа response.core.publisher.Mono. Я получаю это после добавления @Validated на уровне класса. Если я удалю это, логика проверки не сработает.

  @RestController
  @Validated
  public class ContactInfoController implements ContactInfoApi {
  public Flux<UserContactsModel> getUserContacts(@RequestBody  Mono<@Valid  LoginModel> loginDetail) {
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
3
0
977
1

Ответы 1

Сообщение об ошибке, которое вы получаете, на самом деле является ожидаемым поведением, поскольку в HV не зарегистрирован ValueExtractor. Эти экстракторы значений требуются Bean Validation, когда значение должно быть извлечено из некоторого контейнера. Дополнительные сведения о ValueExtractors см. В этом документация

В вашем конкретном случае Mono рассматривается как контейнер. Но концепция Mono (Subscriber) отличается от контейнера. И я не понимаю, как можно смешать эти две концепции вместе. Чтобы иметь возможность «проверять» моно, вам на самом деле нужно обернуть его метод subscribe некоторым проверочным прокси и выполнять проверку, когда значение передается в само моно.

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