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
文档
- 如何在同一个Hibernate事务中运行本机SQL查询?
- Tomcat无法启动 – java.lang.ClassNotFoundException:org.hibernate.Query
- 在Spring Transaction JUnit测试中自动assemblyHibernate会话的正确方法
- 交易未激活 – Hibernate – JPA
- 在创建Hibernate SessionFactory时如何设置Datasource?
- 如何在Hibernate条件api查询中插入“优化器提示”
- java.lang.NoClassDefFoundError:当我向控制器发送无效值时javax / el / PropertyNotFoundException
- HIbernate映射exception:PropertyNotFoundException:找不到setter
- @Basic(fetch = FetchType.LAZY)不起作用?