Spring - HV000030: No validator could be found for constraint ‘xx‘ validating type ‘java.lang.Intege

Posted daopinz

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring - HV000030: No validator could be found for constraint ‘xx‘ validating type ‘java.lang.Intege相关的知识,希望对你有一定的参考价值。

   在测试接口的时候,传入的对象值为integer时,后端报错,看起来是提醒我检查‘pageWith’这个字段的配置。。。其实是项目中使用的校验注解所支持的数据类型与实体中字段的类型不符合。

    @NotEmpty(message = "vo.email.title.empty")
    @ApiModelProperty(value = "邮件标题", required = true, example = "email001")
    @Length(max = 20, message = "vo.email.title.length")
    private String caption;

    @NotEmpty(message = "vo.email.page.width.empty")
    @ApiModelProperty(value = "页面宽度", required = true, example = "600")
    private Integer pageWidth;
javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.Size' validating type 'java.lang.Integer'. Check configuration for 'pageWidth'
	at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.throwExceptionForNullValidator(ConstraintTree.java:227)
	at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorNoUnwrapping(ConstraintTree.java:308)
	at org.hibernate.validator.internal.engine.constraintvalidation.ConstraintTree.getConstraintValidatorInstanceForAutomaticUnwrapping(ConstraintTree.java:242)
	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:396)
	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:616)
	at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:581)
	at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForSingleDefaultGroupElement(ValidatorImpl.java:527)
	at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForDefaultGroup(ValidatorImpl.java:495)
	at org.hibernate.validator.internal.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:460)
	at org.hibernate.validator.internal.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:410)
	at org.hibernate.validator.internal.engine.ValidatorImpl.validate(ValidatorImpl.java:207)
	at org.springframework.validation.beanvalidation.SpringValidatorAdapter.validate(SpringValidatorAdapter.java:108)
	at org.springframework.validation.DataBinder.validate(DataBinder.java:866)
	at org.springframework.web.servlet.mvc.method.annotation.AbstractMessageConverterMethodArgumentResolver.validateIfApplicable(AbstractMessageConverterMethodArgumentResolver.java:268)
	at org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveArgument(RequestResponseBodyMethodProcessor.java:130)
	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:832)
	at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:743)
	at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:961)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:895)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:967)
	at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:652)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)

 

修改为:由原来的@NotEmpty -->  @NotNull

    @NotEmpty(message = "vo.email.title.empty")
    @ApiModelProperty(value = "邮件标题", required = true, example = "email001")
    @Length(max = 20, message = "vo.email.title.length")
    private String caption;

    @NotNull(message = "vo.email.page.width.empty")
    @ApiModelProperty(value = "页面宽度", required = true, example = "600")
    @Range(min = 600, max = 800, message = "vo.email.page.width.exception")
    private Integer pageWidth;

@NotNull

不能为 null,但可以为 empty,一般用在 Integer 类型的基本数据类型的非空校验上,而且被其标注的字段可以使用 @size、@Max、@Min 对字段数值进行大小的控制

@NotEmpty

不能为 null,且长度必须大于 0,一般用在集合类上或者数组上

 

 

以上是关于Spring - HV000030: No validator could be found for constraint ‘xx‘ validating type ‘java.lang.Intege的主要内容,如果未能解决你的问题,请参考以下文章

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

自定义注解 HV000030: No validator could be found for constraint ‘xxx‘ validating type ‘xxx‘

版本不匹配引发的血案:javax.validation.UnexpectedTypeException: HV000030: No validator could be found for const

@Validated参数验证报javax.validation.UnexpectedTypeException: HV000030: No validator could be found for

@Validated参数验证报javax.validation.UnexpectedTypeException: HV000030: No validator could be found for

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