HibernateException: невозможно получить фабрику проверки компонентов по умолчанию - PullRequest
12 голосов
/ 05 октября 2011

Я использую hibernate Hibernate-Version: 3.2.5.ga. Наряду с этим я использую версию gwt2.3. Теперь, когда я пытался обновить версию hibernate, я получаю сообщение об ошибке. Я скачал окончательную версию hibernate 3.6.7 и заменил ее старым файлом jar in.but, когда я запускаю приложение на первом ударе сервера, он выдает ошибку ниже. Если я заменяю новую фляга со старой флягой тогда нет никакой проблемы ... но для новой фляги это дает ошибку. помогите мне. Спасибо заранее.

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)

Ответы [ 7 ]

17 голосов
/ 05 октября 2011

Он не может принять Bean Validation Framework (BeanValidationActivator). Убедитесь, что следующие зависимости находятся в пути к классам или в 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>
10 голосов
/ 01 сентября 2012

По умолчанию для валидатора Hibernate установлено значение auto, то есть, если в classpath есть валидатор, он попытается его использовать.GWT 2.3 и более новые версии включают api проверки в gwt-servlet.jar, поэтому Hibernate заканчивается частичным валидатором и завершается ошибкой.Если вы не хотите использовать Hibernate Validation, просто отключите его в своих свойствах (hibernate.cfg.xml, hibernate.properties или programatics).

Просто установите javax.persistence.validation.mode на none

5 голосов
/ 04 мая 2013

По умолчанию для валидатора Hibernate установлено значение true, что означает, что если в classpath есть валидатор, он попытается его использовать.GWT 2.3 и более новые версии включают api проверки в gwt-servlet.jar, поэтому Hibernate заканчивается частичным валидатором и завершается ошибкой.Если вы не хотите использовать Hibernate Validation, просто отключите его в своих свойствах (hibernate.cfg.xml, hibernate.properties или programatics).

, например: в hibernate.cfg.xml добавьте проверку hibernate.режим отсутствует

<property name="javax.persistence.validation.mode">none</property>
1 голос
/ 13 мая 2012

Попробуйте удалить оба файла: hibernate-validator-4.0.2.GA.jar и validation-api-1.0.0.GA.jar

0 голосов
/ 06 октября 2016

У меня была та же проблема, но затем я добавил нижеприведенную зависимость, и она работала нормально.

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

Но используйте правильную версию.Когда я использовал 5.1.3.Final, он продолжал давать сбой, но затем я изменил версию на 4.2.0.Final, и это сработало.

0 голосов
/ 12 июля 2016

Ответы здесь полезны для Maven. Я использую Gradle и обнаружил, что все, что мне нужно было сделать, это добавить:

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

И ошибка исчезла, и мое приложение функционировало нормально. Мне не нужно было исключать javax validar jar или изменять режим проверки постоянства, как и другие упомянутые ответы.

0 голосов
/ 07 октября 2014

У вас есть 2 варианта:

1.- Вы можете отключить проверку гибернации:

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

2.- Добавьте эти зависимости, если вы не используете maven, скачайте фляги и добавьте к своему артефакту вручную:

    <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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...