Weblogic 12hibernatevalidationexception

从Weblogic 11c切换到Weblogic 12c后,我收到此exception:

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.(ValidatorFactoryImpl.java:113) at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:45) 

我发现了有关这些主题的其他问题,但所有解决方案都是关于错误的库( Vaadin 7 – Bean Validation )。 我认为我的hibernate-validator匹配beanvalidation器库。 这是我在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 

它可能是由其他一些依赖引起的吗?

编辑我目前在我的weblogic-application.xml中有这个,一切正常:

   javax.wsdl.* javax.faces.* org.apache.taglibs.* org.springframework.* javax.persistence.* org.hibernate.* javax.validation.* javax.validation.bootstrap.* javax.validation.constraints.* javax.validation.groups.* javax.validation.metadata.* javax.validation.spi.* org.slf4j.*   javax.faces.* org.apache.taglibs.* org.springframework.* javax.persistence.* javax.validation.* org.hibernate.*   

java.lang.NoSuchMethodError主要是由类路径中的库版本无效引起的。 WebLogic 12c似乎正在使用与您的应用程序所期望的不同版本的validationAPI。 为了强制它使用WEB-INF/lib文件夹中的那个,你必须使用weblogic.xml prefer-web-inf-classes元素来指​​定它。

这里有更多关于prefer-web-inf-classes文档