HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' 에러 수정.

HTTP Request 요청 정보중에서

 

  • Query Param
  • Request Body

 

위 두가지의 유효성 검사를 위해서 javax.validation.contraints 패키지 내의 @NotNull, @NotEmpty, @NotBlank 등의 어노테이션을 활용하는 경우가 있다. 

 

@NotNull은 Nullable한 타입에 선언해야하는데.. 왜냐하면 int나 char 같은 primitive 타입은 null을 포함할 수 없기 때문이다.

 

이와 마찬가지로 @NotBlank와 @NotEmpty도 마찬가지로 유효성 검사를 진행할 수 있는 타입이 존재한다.

 

@NotBlank

단 하나의 공백 문자열도 포함하지 않는다. -> 오로지 문자열에 해당함.(String, CharSequance)

주석내용 : The annotated element must not be null and must contain at least one non-whitespace character.

 

@NotEmpty

  • CharSequence (length of character sequence is evaluated)
  • Collection (collection size is evaluated)
  • Map (map size is evaluated)
  • Array (array length is evaluated)

empty의 경우 empty라는 키워드가 들어갈 수 있는 컬렉션이라던가 문자열 타입만 사용할 수 있다.

 

나의 경우 @NotBlank 어노테이션을 enum 클래스에 선언하여 아래와 같은 에러를 뱉어냈다.

 

javax.validation.UnexpectedTypeException: HV000030: No validator could be found for constraint 'javax.validation.constraints.NotBlank' validating type 'com.xxx.xxx.enums.SignableRoomSearchKeywordType'. Check configuration for 'keywordType'

keywordType 이라는 enum 변수에 @NotBlank를 사용하니 해당 타입을 validate할 수 있는 validator가 없다는 에러를 낼 수 밖에 없다.

 

해당 내용에 대해서 에러메시지를 보고 바로 생각할 수 있었어야 했는데 시야가 너무 좁게 일하고 있는 것 같다..ㅠㅠ

 

주의하자

댓글

Designed by JB FACTORY