【问题标题】:Spring Bean validation giving ConstraintDeclarationExceptionSpring Bean 验证给出 ConstraintDeclarationException
【发布时间】:2019-05-23 18:38:32
【问题描述】:

我收到 javax.validation.ConstraintDeclarationException: HV000197: No value extractor found for type parameter 'T' of type reactor.core.publisher.Mono。 在类级别添加@Validated 后,我得到了这个。如果我删除它,则不会触发验证逻辑。

  @RestController
  @Validated
  public class ContactInfoController implements ContactInfoApi {
  public Flux<UserContactsModel> getUserContacts(@RequestBody  Mono<@Valid  LoginModel> loginDetail) {

【问题讨论】:

    标签: java spring spring-boot spring-webflux hibernate-validator


    【解决方案1】:

    您收到的错误消息实际上是预期行为,因为在 HV 中没有注册 ValueExtractor。当应该从某个容器中提取值时,Bean Validation 需要这些值提取器。 有关 ValueExtractors 的更多详细信息,请参阅documentation

    在您的特定情况下,Mono 被视为容器。但是MonoSubscriber)的概念和容器是不一样的。而且我看不出你如何将这两个概念混合在一起。为了能够“验证”单声道,您实际上需要使用一些验证代理包装其subscribe 方法,并在将值推送到单声道本身时执行验证。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-03-02
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-23
      • 2020-12-21
      • 2015-01-06
      • 1970-01-01
      相关资源
      最近更新 更多