我正在获取javax.validation.ConstraintDeclarationException:HV000197:未找到类型为react.core.publisher.Mono的类型参数'T'的值提取器。 我在课堂上添加@Validated后得到了这个。如果我删除此代码,则不会触发验证逻辑。
@RestController
@Validated
public class ContactInfoController implements ContactInfoApi {
public Flux<UserContactsModel> getUserContacts(@RequestBody Mono<@Valid LoginModel> loginDetail) {
答案 0 :(得分:0)
您收到的错误消息实际上是预期的行为,因为HV中没有注册ValueExtractor
。当应从某个容器中提取值时,Bean验证需要使用这些值提取器。
有关ValueExtractors的更多详细信息,请参见此documentation
在您的特定情况下,Mono
被视为容器。但是Mono
(Subscriber
)的概念与容器不同。而且我看不到如何将这两个概念结合在一起。为了能够“验证”单声道,您实际上需要将其subscribe
方法包装到一些验证代理中,并在将值推入单声道本身时执行验证。