2011-10-05 10 views
11

Estoy usando hibernate Hibernate-Version: 3.2.5.ga.Además de esto, estoy usando la versión gwt2.3. Ahora, cuando traté de actualizar la versión de hibernación, recibo un error. He descargado la versión final de hibernate 3.6.7 y la reemplacé en el archivo jar anterior. Pero cuando ejecuto la aplicación en el primer servidor, aparece el siguiente error. Si reemplazo nuevo jar con jar viejo, entonces no hay problema ... pero para el nuevo jar está dando error. ayúdame. Gracias de antemano.HibernateException: no se puede obtener la fábrica de Validación de Bean por defecto

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:1704) 
at org.hibernate.cfg.Configuration.applyConstraintsToDDL(Configuration.java:1654) 
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1445) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1856) 
at com.nextenders.facadeimplementation.hibernate.util.HibernateFactory.configureSessionFactory(HibernateFactory.java:107) 
at com.nextenders.facadeimplementation.hibernate.util.HibernateFactory.buildIfNeeded(HibernateFactory.java:42) 
at com.nextenders.facadeimplementation.model.dao.AbstractDao.<init>(AbstractDao.java:20) 
at com.nextenders.facadeimplementation.model.dao.UserDetailsDao.<init>(UserDetailsDao.java:24) 
at com.nextenders.facadeimplementation.facade.UserFacade.doLogin(UserFacade.java:753) 
at com.nextenders.facadeimplementation.facade.UserFacade.workflowMethodCaller(UserFacade.java:822) 
at com.nextenders.server.guice.actions.handlers.LoginCallerActionHandler.execute(LoginCallerActionHandler.java:61) 
at com.nextenders.server.guice.actions.handlers.LoginCallerActionHandler.execute(LoginCallerActionHandler.java:1) 
at com.gwtplatform.dispatch.server.AbstractDispatchImpl.doExecute(AbstractDispatchImpl.java:153) 
at com.gwtplatform.dispatch.server.AbstractDispatchImpl.execute(AbstractDispatchImpl.java:111) 
at com.gwtplatform.dispatch.server.AbstractDispatchServiceImpl.execute(AbstractDispatchServiceImpl.java:80) 
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 com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:569) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:208) 
at com.google.gwt.user.server.rpc.RemoteServiceServlet.processPost(RemoteServiceServlet.java:248) 
at com.google.gwt.user.server.rpc.AbstractRemoteServiceServlet.doPost(AbstractRemoteServiceServlet.java:62) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at com.google.inject.servlet.ServletDefinition.doService(ServletDefinition.java:263) 
at com.google.inject.servlet.ServletDefinition.service(ServletDefinition.java:178) 
at com.google.inject.servlet.ManagedServletPipeline.service(ManagedServletPipeline.java:91) 
at com.google.inject.servlet.FilterChainInvocation.doFilter(FilterChainInvocation.java:62) 
at com.google.inject.servlet.ManagedFilterPipeline.dispatch(ManagedFilterPipeline.java:118) 
at com.google.inject.servlet.GuiceFilter.doFilter(GuiceFilter.java:113) 
at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1088) 
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) 
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
at org.mortbay.jetty.Server.handle(Server.java:324) 
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 

Respuesta

16

No puede ACCEESS Bean Validation Marco (BeanValidationActivator) Por favor asegúrese de que la siguiente dependencia se encuentran en la ruta de clase o en pom.xml

<dependency> 
     <groupId>javax.validation</groupId> 
     <artifactId>validation-api</artifactId> 
     <version>1.0.0.GA</version> 
    </dependency> 
    <dependency> 
     <groupId>org.hibernate</groupId> 
     <artifactId>hibernate-validator</artifactId> 
     <version>4.2.0</version> 
    </dependency> 
1

Prueba a eliminar tanto la hibernación-validador-4.0 .2.GA.jar & validation-api-1.0.0.GA.jar

9

De forma predeterminada, el validador de Hibernate se establece en automático, lo que significa que si hay un validador en el classpath intentará usarlo. GWT 2.3 y las versiones más nuevas incluyen la API de validación dentro de gwt-servlet.jar, por lo que Hibernate termina con un validador parcial y falla. Si no desea utilizar la Validación de Hibernate, simplemente desactívela en sus propiedades (hibernate.cfg.xml, hibernate.properties o programáticamente).

Basta con establecer javax.persistence.validation.mode a none

4

Por validador por defecto de Hibernate se establece en true, es decir, si hay un validador en la ruta de clase se tratará de utilizarlo. GWT 2.3 y las versiones más nuevas incluyen la API de validación dentro de gwt-servlet.jar, por lo que Hibernate termina con un validador parcial y falla. Si no desea utilizar la Validación de Hibernate, simplemente desactívela en sus propiedades (hibernate.cfg.xml, hibernate.properties o programáticamente).

por ejemplo: en hibernate.cfg.xml añadir el modo de hibernación de validación a ninguno

<property name="javax.persistence.validation.mode">none</property> 
0

tiene 2 opciones:

1.- Se podía desactivar la hibernación de validación:

setProperty("javax.persistence.validation.mode", "NONE"); 

2.- Agregue estas dependencias, si no usa maven, descargue los archivos jar y agregue manualmente su artefacto:

<dependency> 
     <groupId>javax.el</groupId> 
     <artifactId>javax.el-api</artifactId> 
     <version>2.2.4</version> 
     <scope>provided</scope> <!-- No required in JBoss but for test --> 
    </dependency> 
    <dependency> 
     <groupId>org.glassfish.web</groupId> 
     <artifactId>javax.el</artifactId> 
     <version>2.2.4</version> 
     <scope>provided</scope> <!-- No required in JBoss but for test --> 
    </dependency> 
0

Las respuestas aquí son útiles para Maven. Estoy usando Gradle y me pareció que todo lo que tenía que hacer era añadir:

compile group: 'org.hibernate', name: 'hibernate-validator', version: '4.2.0.Final' 

Y el error desapareció y mi aplicación funcionaba correctamente. No necesité excluir el jarrón de validación javax ni cambiar el modo de validación de persistencia como las otras respuestas mencionadas.

0

Estaba teniendo el mismo problema, pero luego agregué la siguiente dependencia y funcionó bien.

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

Pero utilice la versión correcta. Cuando utilicé 5.1.3.Final, siguió fallando pero luego cambié la versión a 4.2.0.Final y funcionó.

Cuestiones relacionadas