Исключение при инициализации ApplicationContext HibernateException: ошибка при применении реляционных ограничений BeanValidation

Я создал ранее Question, где у меня проблема с бритьем, это может быть временно по:

Добавление: hibernate.properties: javax.persistence.validation.mode=none

Я не могу понять точную причину, по которой это происходит временно, я могу исправить с помощью: Добавление: hibernate.properties: javax.persistence.validation.mode=none properties. но это не может быть окончательным вариантом, потому что приложению необходимо получить bean-компонент проверки.

Не могли бы вы помочь мне понять, почему он дает эту ошибку раньше, этот проект работал нормально:

Если я не помещаю свойства javax.persistence.validation.mode=none в hibernate.properties, я получаю ту же ошибку.

Пожалуйста, помогите мне понять и решить эту проблему.

Моя полная трассировка стека выглядит следующим образом:

-  2015-11-13 03:58:51,217 [main] INFO  (support.context.ApplicationContext)   Added 534 mappings (249 configured for L2 cache)
 -  2015-11-13 03:58:51,227 [main] INFO  (support.context.ApplicationContext) Done building hibernate configuration, time 3,201.301 ms
 -  2015-11-13 03:58:51,227 [main] INFO  (support.context.ApplicationContext) Building hibernate session factory
 -  2015-11-13 03:58:51,965 [main] INFO  (connections.internal.ConnectionProviderInitiator) HHH000130: Instantiating explicit connection provider: com.hotwg.shared.common.UCPConnectionProvider
 -  2015-11-13 03:58:52,321 [main] INFO  (hibernate.dialect.Dialect) HHH000400: Using dialect: org.hibernate.dialect.Oracle10gDialect
 -  2015-11-13 03:58:52,525 [main] FATAL (support.context.ApplicationContext) Error initializing ApplicationContext
org.hibernate.HibernateException: Error applying BeanValidation relational constraints
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:219)
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:126)
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:302)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1740)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
        at com.hotwg.base.support.context.ApplicationContext.buildSessionFactory(ApplicationContext.java:197)
        at com.hotwg.base.support.context.ContextFactory.buildContext(ContextFactory.java:131)
        at com.hotwg.base.support.context.ContextFactory.buildContext(ContextFactory.java:104)
        at com.hotwg.base.support.context.ContextFactory.createDefaultContext(ContextFactory.java:607)
        at com.hotwg.base.api.batch.StandaloneExecuter.setupContext(StandaloneExecuter.java:334)
        at com.hotwg.base.api.batch.StandaloneExecuter.run(StandaloneExecuter.java:135)
        at com.hotwg.base.api.batch.StandaloneExecuter.main(StandaloneExecuter.java:433)
        at com.hotwg.base.api.batch.AbstractStandaloneRunner.invokeStandaloneExecuter(AbstractStandaloneRunner.java:546)
        at com.hotwg.base.api.batch.ThreadPoolWorker.invokeStandaloneExecuter(ThreadPoolWorker.java:122)
        at com.hotwg.base.api.batch.AbstractStandaloneRunner.run(AbstractStandaloneRunner.java:179)
        at com.hotwg.base.api.batch.ThreadPoolWorker.run(ThreadPoolWorker.java:66)
        at com.hotwg.base.api.batch.ThreadPoolWorker.main(ThreadPoolWorker.java:56)
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:606)
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:208)
        ... 16 more
Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:524)
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:119)
        ... 21 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:521)
        ... 22 more
 -  2015-11-13 03:58:52,529 [main] ERROR (api.batch.StandaloneExecuter) error initializing test context
 -  2015-11-13 03:58:52,529 [main] ERROR (api.batch.StandaloneExecuter) Error encountered in standalone executer
com.hotwg.shared.common.LoggedException:
The following stacked messages were reported as the LoggedException was rethrown:
com.hotwg.base.support.context.ContextFactory.createDefaultContext(ContextFactory.java:607): error initializing test context

The root LoggedException was: Error initializing ApplicationContext
        at com.hotwg.shared.common.LoggedException.wrap(LoggedException.java:199)
        at com.hotwg.base.support.context.ApplicationContext.throwUnableToInitializeApplicationContext(ApplicationContext.java:300)
        at com.hotwg.base.support.context.ApplicationContext.buildSessionFactory(ApplicationContext.java:202)
        at com.hotwg.base.support.context.ContextFactory.buildContext(ContextFactory.java:131)
        at com.hotwg.base.support.context.ContextFactory.buildContext(ContextFactory.java:104)
        at com.hotwg.base.support.context.ContextFactory.createDefaultContext(ContextFactory.java:607)
        at com.hotwg.base.api.batch.StandaloneExecuter.setupContext(StandaloneExecuter.java:334)
        at com.hotwg.base.api.batch.StandaloneExecuter.run(StandaloneExecuter.java:135)
        at com.hotwg.base.api.batch.StandaloneExecuter.main(StandaloneExecuter.java:433)
        at com.hotwg.base.api.batch.AbstractStandaloneRunner.invokeStandaloneExecuter(AbstractStandaloneRunner.java:546)
        at com.hotwg.base.api.batch.ThreadPoolWorker.invokeStandaloneExecuter(ThreadPoolWorker.java:122)
        at com.hotwg.base.api.batch.AbstractStandaloneRunner.run(AbstractStandaloneRunner.java:179)
        at com.hotwg.base.api.batch.ThreadPoolWorker.run(ThreadPoolWorker.java:66)
        at com.hotwg.base.api.batch.ThreadPoolWorker.main(ThreadPoolWorker.java:56)
Caused by: org.hibernate.HibernateException: Error applying BeanValidation relational constraints
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:219)
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:126)
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:302)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1740)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
        at com.hotwg.base.support.context.ApplicationContext.buildSessionFactory(ApplicationContext.java:197)
        ... 11 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:606)
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:208)
        ... 16 more
Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:524)
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:119)
        ... 21 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:521)
        ... 22 more
Exception in thread "main" com.hotwg.shared.common.LoggedException:
The following stacked messages were reported as the LoggedException was rethrown:
com.hotwg.base.support.context.ContextFactory.createDefaultContext(ContextFactory.java:607): error initializing test context

The root LoggedException was: Error initializing ApplicationContext
        at com.hotwg.shared.common.LoggedException.wrap(LoggedException.java:199)
        at com.hotwg.base.support.context.ApplicationContext.throwUnableToInitializeApplicationContext(ApplicationContext.java:300)
        at com.hotwg.base.support.context.ApplicationContext.buildSessionFactory(ApplicationContext.java:202)
        at com.hotwg.base.support.context.ContextFactory.buildContext(ContextFactory.java:131)
        at com.hotwg.base.support.context.ContextFactory.buildContext(ContextFactory.java:104)
        at com.hotwg.base.support.context.ContextFactory.createDefaultContext(ContextFactory.java:607)
        at com.hotwg.base.api.batch.StandaloneExecuter.setupContext(StandaloneExecuter.java:334)
        at com.hotwg.base.api.batch.StandaloneExecuter.run(StandaloneExecuter.java:135)
        at com.hotwg.base.api.batch.StandaloneExecuter.main(StandaloneExecuter.java:433)
        at com.hotwg.base.api.batch.AbstractStandaloneRunner.invokeStandaloneExecuter(AbstractStandaloneRunner.java:546)
        at com.hotwg.base.api.batch.ThreadPoolWorker.invokeStandaloneExecuter(ThreadPoolWorker.java:122)
        at com.hotwg.base.api.batch.AbstractStandaloneRunner.run(AbstractStandaloneRunner.java:179)
        at com.hotwg.base.api.batch.ThreadPoolWorker.run(ThreadPoolWorker.java:66)
        at com.hotwg.base.api.batch.ThreadPoolWorker.main(ThreadPoolWorker.java:56)
Caused by: org.hibernate.HibernateException: Error applying BeanValidation relational constraints
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:219)
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.integrate(BeanValidationIntegrator.java:126)
        at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:302)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1740)
        at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1778)
        at com.hotwg.base.support.context.ApplicationContext.buildSessionFactory(ApplicationContext.java:197)
        ... 11 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:606)
        at org.hibernate.cfg.beanvalidation.BeanValidationIntegrator.applyRelationalConstraints(BeanValidationIntegrator.java:208)
        ... 16 more
Caused by: org.hibernate.HibernateException: Unable to build the default ValidatorFactory
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.getValidatorFactory(TypeSafeActivator.java:524)
        at org.hibernate.cfg.beanvalidation.TypeSafeActivator.applyDDL(TypeSafeActivator.java:119)
        ... 21 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:521)
        ... 22 more

person Gautam    schedule 18.11.2015    source источник


Ответы (2)


Я не совсем уверен, что полностью понимаю ваш вопрос, но если проблема в том, что вы получаете указанную выше трассировку стека при загрузке приложения, и она исчезает при установке javax.persistence.validation.mode=none, то ответ следующий.

Установка режима проверки сообщает ORM, или, точнее, BeanValidationIntegrator, чтобы вообще не включать проверку компонентов. Это соответствует спецификации JPA, в которой указано поведение между JPA и проверкой компонентов.

В любом другом режиме BeanValidationIntegrator попытается включить проверку компонентов. Он проверяет, находится ли javax.validation.Validation в пути к классам, принимая это как ключ для начальной проверки Bean Validation. Однако для этого также требуется, чтобы была доступна реализация проверки компонентов, например Hibernate Validator.

Ваша трассировка стека подразумевает, что у вас есть Bean Validation API в пути к классам, но нет Bean Validation Provider (реализация).

Как выглядят ваши зависимости?

person Hardy    schedule 18.11.2015
comment
Я с трудом вижу здесь связь. SSL предназначен для шифрования трафика TCP/IP. Нет никакой связи с Bean Validation. Здесь должно быть что-то большее. Я предполагаю, что у вас есть проблемы с общей настройкой проекта, но вы не предоставили никаких подробностей относительно контекста, в котором используется Bean Validation, и никаких подробностей о том, какие версии фреймворков задействованы. - person Hardy; 19.11.2015
comment
Чтобы ответить на ваш вопрос, как выглядят ваши зависимости? У меня есть полный набор банок hibernet4.1 в моем пути к классу и зависимость от банок, связанных с Weblogic. - person Gautam; 20.11.2015

В моем приложении мы используем hibernate 4, и после добавления hibernate-validator-4.1.0.Final.jar в путь к классам я не получаю это исключение, хотя у меня нет этих свойств в hibernate.properties: javax.persistence.validation.mode=none

Я могу решить эту проблему, добавив hibernate-validator-4.1.0.Final.jar в путь к классам приложения.

person Gautam    schedule 27.12.2015
comment
В wlfullclient.jar будет включен класс javax.validation.Validation, и это неявно. Он запускает класс Bean Validation для начальной проверки. Следовательно, теперь добавление hibernate-validation-XX.jar исправляет это. The wlfullclient.jar. Если мы не включим класс javax.validaton.Validation в wlfullclient.jar. Это будет решено. Я проверил, что в моем пути к классу также присутствует wlfullclient.jar. - person Gautam; 18.03.2016