2013-09-27 3 views
2

Я получаю это исключение после переключения с Weblogic 11с до 12с Weblogic:Weblogic 12 гибернации исключение проверки

javax.persistence.PersistenceException: [PersistenceUnit: JpaPersistenceUnit] Unable to build EntityManagerFactory 
... 
Caused By: java.lang.NoSuchMethodError: javax.validation.spi.ConfigurationState.getParameterNameProvider()Ljavax/validation/ParameterNameProvider; 
at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:113) 
at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:45) 

Я нашел другие вопросы по поводу темы, но все решения были о неправильных библиотеках (Vaadin 7 - Bean Validation). Я думаю, что мой hibernate-validator соответствует библиотеке валидатора компонентов. Это то, что у меня есть в WEB-INF/lib:

hibernate-c3p0-4.2.4.Final.jar 
hibernate-commons-annotations-4.0.2.Final.jar 
hibernate-core-4.2.4.Final.jar 
hibernate-entitymanager-4.2.4.Final.jar 
hibernate-jpa-2.0-api-1.0.1.Final.jar 
hibernate-validator-5.0.1.Final.jar 
validation-api-1.1.0.Final.jar 

Может ли это быть вызвано какой-либо другой зависимостью?

EDIT настоящего времени у меня это в моем WebLogic-application.xml и все работает:

<weblogic-application> 

    <prefer-application-packages> 
     <package-name>javax.wsdl.*</package-name> 
     <package-name>javax.faces.*</package-name> 
     <package-name>org.apache.taglibs.*</package-name> 
     <package-name>org.springframework.*</package-name> 
     <package-name>javax.persistence.*</package-name> 
     <package-name>org.hibernate.*</package-name> 
     <package-name>javax.validation.*</package-name> 
     <package-name>javax.validation.bootstrap.*</package-name> 
     <package-name>javax.validation.constraints.*</package-name> 
     <package-name>javax.validation.groups.*</package-name> 
     <package-name>javax.validation.metadata.*</package-name> 
     <package-name>javax.validation.spi.*</package-name> 
     <package-name>org.slf4j.*</package-name> 
    </prefer-application-packages> 

    <prefer-application-resources> 
     <resource-name>javax.faces.*</resource-name> 
     <resource-name>org.apache.taglibs.*</resource-name> 
     <resource-name>org.springframework.*</resource-name> 
     <resource-name>javax.persistence.*</resource-name> 
     <resource-name>javax.validation.*</resource-name> 
     <resource-name>org.hibernate.*</resource-name> 
    </prefer-application-resources> 

</weblogic-application> 

ответ

3

java.lang.NoSuchMethodError в основном вызван неверной версией библиотеки в вашем пути к классам. Похоже, что WebLogic 12c использует другую версию проверки api от ожидаемого приложения. Чтобы заставить его использовать тот, который находится в папке WEB-INF/lib, вы должны указать его с помощью элемента prefer-web-inf-classes в своем weblogic.xml.

Here является дополнительной документации о prefer-web-inf-classes

+0

Я добавил '' 'javax.validation''' к' '' предпочитать-веб-инф-classes''' и теперь он работает – NeplatnyUdaj

Смежные вопросы