<!-- pom.xml -->
<!-- Validation 관련 -->
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>3.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.1.Final</version>
</dependency>
OptionalValidatorFactoryBean를 bean으로 등록해주기
dependency 버전 맞춰주기
ValidatorFactoryBean을 servlet 설정파일에 bean으로 등록해주면 예외가 발생하게 된다.
nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [org.springframework.validation.beanvalidation.OptionalValidatorFactoryBean] for bean with name 'beanValidator' defined in ServletContext resource [/WEB-INF/pf-servlet.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: javax/validation/ValidatorFactory
해당 dependency는 Jakarta EE9에서 유효한데, 나의 Spring 버전은 5.3대 (즉, Jakarta EE 8 level)
스프링과 Jakarta 버전에 맞는 버전으로 다시 의존성을 추가해주었다.
<!-- pom.xml -->
<!-- https://mvnrepository.com/artifact/jakarta.validation/jakarta.validation-api -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
Jakarta Bean Validation 2.0 was published in August 2019.It's part of Jakarta EE 8 (b ut can of course be used with plain Java SE as the previous releases).