【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint

byte01

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint


javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint

使用hibernate validator出现上面的错误, 一般两种情况:

(1)注解与需要校验的数据类型不匹配,然后就会找不到。譬如在String 类型上使用@Min

org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree#getConstraintValidatorNoUnwrapping

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_spring

org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager#getInitializedValidator

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_java_02

org.hibernate.validator.internal.engine.constraintvalidation.ConstraintValidatorManager#findMatchingValidatorClass

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_hibernate_03

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_java_04

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_java_05

org.hibernate.validator.internal.util.TypeHelper#extractType

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_java_06

org.hibernate.validator.internal.util.TypeHelper#getValidatorsTypes

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_hibernate_07

(2)validation-api和hibernate-validator的版本不匹配。导致注解没有对应的Validator。譬如:validation-api2.x已经收录了@javax.validation.constraints.NotEmpty,但hibernate-validator 5.x中还没有相应的Validator。

hibernate-validator 5.x中是使用组合注解的方式来处理@org.hibernate.validator.constraints.NotEmpty


如下图所示,@javax.validation.constraints.NotEmpty是没有对应的Validator的,如果使用肯定会报 Novalidator

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_hibernate_08


温馨提示:Spring boot 中spring-boot-starter-web 中已经匹配的版本。如果不在pom.xml新增validation-api和hibernate-validator就不会出现版本不匹配

配套的版本:

(1)validation-api 1.1.0.Final + hibernate-validator 5.3.6.Final

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_spring_09

(2)validation-api 2.0.1.Final + hibernate-validator 6.0.16.Final

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_hibernate_10

<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.16.Final</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>

【已解决】javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint_hibernate_11

如果在基本类型上面用NotEmpty或者NotBlank 会出现上面的错


javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Short'. Check configuration for 'status'
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.throwExceptionForNullValidator(ConstraintTree.java:229)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorNoUnwrapping(ConstraintTree.java:310)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorInstanceForAutomaticUnwrapping(ConstraintTree.java:244)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getInitializedConstraintValidator(ConstraintTree.java:163)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:116)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateComposingConstraints(ConstraintTree.java:398)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:98)
at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.validateConstraints(ConstraintTree.java:87)
at org.hibernate.validator.internal.metadata.core.MetaConstraint.validateConstraint(MetaConstraint.java:73)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateMetaConstraint(ValidatorImpl.java:617)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:580)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:524)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:492)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:457)
at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:407)
at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:205)
at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:108)
at org.springframework.validation.DataBinder.validate(DataBinder.java:866)
at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.validateIfApplicable(ModelAttributeMethodProcessor.java:164)
at org.springframework.web.method.annotation.ModelAttributeMethodProcessor.resolveArgument(ModelAttributeMethodProcessor.java:111)
at org.springframework.web.method.support.HandlerMethodArgumentResolverComposite.resolveArgument(HandlerMethodArgumentResolverComposite.java:99)
at org.springframework.web.method.support.InvocableHandlerMethod.getMethodArgumentValues(InvocableHandlerMethod.java:161)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:128)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
at org.springframework.web.servlet.FrameworkServlet.doPut(FrameworkServlet.java:881)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:651)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)



javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint

使用hibernate validator出现上面的错误, 需要 注意 @NotNull 和 @NotEmpty 和@NotBlank 区别 @NotEmpty 用在集合类上面@NotBlank 用在String上面@NotNull 用在基本类型上 如果在基本类型上面用NotEmpty或者NotBl

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'org

1、错误描述2017-01-13 15:39:18,107 [http-apr-8080-exec-5] ERROR [core.interceptor.ExceptionResolverCustom] - HV...

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 解决方法

在使用hibernate validator进行参数有效性校验的时候,我们有时候会遇到javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint ,比如,在我们的应用中,

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for type: java.lang

1、错误描述 2016-05-05 15:15:57,889 [http-8080-exec-5] DEBUG enter cache javax.validation.UnexpectedTypeExcep...

【Hibernate-Validator错误集】--javax.validation.UnexpectedTypeException: HV000030: No validator could be

错误描述:Method [public org.csun.nc.entity.JsonResult org.csun.nc.controller.OldOutController.oldOutApply(org.csun.nc.pojo.User,org.csun.nc.pojo.

No validator could be found for constraint ‘javax.validation.constraints.NotBlank‘ validating type

这是因为@NotBlank是validation-api 2.x才有的。hibernate-validator 6.x 依赖的是validation-api 2.x。所以排除项目中hibernate-validator 6.x 以下的依赖。

Validation异常:No validator could be found for constraint '.....' validating type 'java.lang.Integer'.

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Pattern' validatin

javax.validation.ValidationException: HV000041: Call to TraversableResolver.isReachable() threw an e

写实体类时,经常会对域增加校验,​​例如@NotNull表示哪个字段不能为空​​,昨天晚上调试代码,就遇到了问题,@Entitypublic class ApplicationCategory implements Serializable { private static final long serialVersionUID = -8018302345969463947L; @Id

【Bug】No validator… javax.validation.constraints.NotBlank validating type java.lang.Integer

经检查,是因为在 Integer 类型的字段上加了@NotBlank的校验注解,而该注解只能用于字符串类型,因此

Spring Boot奇怪的问题:The Bean Validation API is on the classpath but no implementation could be found

注意:此方法不能解决在项目上用了Hibernate Validator的问题。 错误如下: 场景: 新搭建的Spring Boot项目,就最简单的Hello World实例,没有用什么Hibernate Validator,而且在其它系统都能正常,但就其中一台LInux无法运行。 解决