web-dev-qa-db-fra.com

ValidationException: impossible de trouver un fournisseur par défaut

J'ai trouvé trois entrées pour cela dans le débordement de pile:

javax.validation.ValidationException: impossible de trouver le fournisseur par défaut

javax.validation.ValidationException: impossible de trouver un fournisseur par défaut

Spring MVC 3 Validation - Impossible de trouver un fournisseur par défaut

et tous les trois disent d'ajouter Hibernate Validator au chemin de classe. Qu'est-ce que je fais quand j'ai fait ça et que j'ai toujours la même erreur?

1301 [main] ERROR org.springframework.web.servlet.DispatcherServlet - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/db.xml]: Invocation of init method failed; nested exception is org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.Java:1455)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.Java:519)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.Java:456)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.Java:294)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.Java:225)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.Java:291)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.Java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.Java:567)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.Java:913)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.Java:464)
    at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.Java:631)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.Java:588)
    at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.Java:645)
    at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.Java:508)
    at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.Java:449)
    at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.Java:133)
    at javax.servlet.GenericServlet.init(GenericServlet.Java:241)
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.Java:433)
    at org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.Java:256)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:39)
    at org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.Java:616)
    at org.mortbay.jetty.servlet.Context.startContext(Context.Java:140)
    at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.Java:1220)
    at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.Java:513)
    at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.Java:448)
    at com.google.gwt.dev.Shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.Java:468)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:39)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.Java:130)
    at org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.Java:115)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:39)
    at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.Java:130)
    at org.mortbay.jetty.Server.doStart(Server.Java:222)
    at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.Java:39)
    at com.google.gwt.dev.Shell.jetty.JettyLauncher.start(JettyLauncher.Java:672)
    at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.Java:509)
    at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.Java:1068)
    at com.google.gwt.dev.DevModeBase.run(DevModeBase.Java:811)
    at com.google.gwt.dev.DevMode.main(DevMode.Java:311)
Caused by: org.hibernate.HibernateException: Unable to get the default Bean Validation factory
    at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.Java:127)
    at org.hibernate.cfg.Configuration.applyBeanValidationConstraintsOnDDL(Configuration.Java:1674)
    at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.Java:1624)
    at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.Java:1415)
    at org.hibernate.cfg.Configuration.buildMappings(Configuration.Java:1345)
    at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.Java:717)
    at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.Java:211)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.Java:1514)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.Java:1452)
    ... 37 more
Caused by: Java.lang.reflect.InvocationTargetException
    at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:57)
    at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.lang.reflect.Method.invoke(Method.Java:601)
    at org.hibernate.cfg.beanvalidation.BeanValidationActivator.applyDDL(BeanValidationActivator.Java:118)
    ... 45 more
Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
    at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.Java:345)
    at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.Java:106)
    ... 50 more
Caused by: javax.validation.ValidationException: Unable to find a default provider
    at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.Java:264)
    at javax.validation.Validation.buildDefaultValidatorFactory(Validation.Java:111)
    at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.Java:342)
    ... 51 more
12
Thom

Le forum de printemps m'a aidé. http://forum.springsource.org/showthread.php?124477-ValidationException-Unable-to-find-a-default-provider

Quelque chose à voir avec l'hibernation 3.6.x. J'ai rétrogradé à Hibernate 3.5.6-Final et cela fonctionne à merveille.

Merci pour toute l'aide.

2
Thom

Ajoutez la dépendance hibernate-validator qui a l'implémentation de JSR 303 (validation de bean).

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>4.2.0.Final</version>
</dependency>
15
false9striker

Peut-être serait-il utile de savoir que l’archive Zip téléchargée à partir du site du fournisseur doit être extraite à l’avance en l’ajoutant comme dépendance à votre projet. Par exemple, j'essaie d'ajouter l'archive hibernate-validator-4.3.2.Final-dist.Zip à mes dépendances de projet dans IDE, mais cela ne fonctionne pas. Ensuite, je l'extrais et ajoute toutes les bibliothèques du dossier dist à mon projet et le problème disparaît. 

0
iko