I know this question has been asked several times here, but I could not find the answer to help me
I'm trying to use annotation @Validon my controller, but spring doesn't seem to want to do anything with it
That's what I'm doing:
Versions:
<org.springframework-version>4.0.5.RELEASE</org.springframework-version>
<hibernate-annotations-version>3.5.6-Final</hibernate-annotations-version>
The class I want to check is:
public class myclass{
private int id;
@NotEmpty
@Min(20)
private String title;
@NotEmpty
private String description;
}
Controller Signature:
@RequestMapping(method = RequestMethod.POST)
@ResponseBody
public ServerResponse<Integer> addSomeClass(@RequestBody @Valid myclass mymy) {
I also set up
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
private @Value("${web.maxFileUploadSize}") int MAX_FILE_UPLOAD_SIZE;
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/resources/**").addResourceLocations("/resources/");
registry.addResourceHandler("/deployed/**").addResourceLocations("/deployed/");
}
@Bean
public CommonsMultipartResolver multipartResolver() {
CommonsMultipartResolver ret = new CommonsMultipartResolver();
ret.setMaxUploadSize(MAX_FILE_UPLOAD_SIZE);
return ret;
}
@Bean
public RequestMappingHandlerAdapter requestMappingHandlerAdapter(){
RequestMappingHandlerAdapter requestMappingHandlerAdapter = new RequestMappingHandlerAdapter();
List<HttpMessageConverter<?>> messageConverters = new LinkedList<>();
messageConverters.add(new MappingJackson2HttpMessageConverter());
requestMappingHandlerAdapter.setMessageConverters(messageConverters);
return requestMappingHandlerAdapter;
}
@Bean(name ="validator")
public LocalValidatorFactoryBean validator(){
return new LocalValidatorFactoryBean();
}
}
when i send this json:
{"title":"","description":""}
nothing happens and everything continues.
I can not find the answer.
UPDATE
I already had:
<hibernate-validator-version>4.3.1.Final</hibernate-validator-version>
So, I updated it to: 5.1.1and this is what I get
Caused by: org.hibernate.cfg.beanvalidation.IntegrationException: Error activating Bean Validation integration
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:154)
at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:312)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1857)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1928)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:343)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:431)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:416)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1612)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1549)
... 74 more
Caused by: java.lang.NoClassDefFoundError: javax/validation/ParameterNameProvider
at org.hibernate.validator.HibernateValidator.createGenericConfiguration(HibernateValidator.java:41)
at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:269)
at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:111)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:459)
at org.hibernate.cfg.beanvalidation.TypeSafeActivator.activate(TypeSafeActivator.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:148)
... 82 more
Caused by: java.lang.ClassNotFoundException: javax.validation.ParameterNameProvider
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
... 92 more
so I updated my validation-apito 1.1.0.Finalwithout exception, but have not yet verified
source
share