【发布时间】:2014-08-01 09:00:35
【问题描述】:
我正在尝试将我的项目配置为在 Weblogic 12.1.3 上使用 Hibernate Validator 5.1.2 运行 JPA2.1,但是当我尝试部署我的项目时遇到了问题。
我使用手动方法将 weblogic 配置为使用 JPA2.1,如 Weblogic 12.1.3 的文档页面所述:http://docs.oracle.com/middleware/1213/wls/EJBAD/using_toplink.htm#EJBAD1508
我想在我的项目中使用 hibernate-validator 5.1.2,我是这样配置的:
Maven 依赖:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.2.Final</version>
</dependency>
weblogic.xml
<container-descriptor>
<prefer-application-packages>
<!-- hibernate validator 5.1.2 over HV 4.1 -->
<package-name>javax.validation.*</package-name>
<package-name>org.hibernate.validator.*</package-name>
<!-- guava 13 -->
<package-name>com.google.common.collect.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<!-- hibernate validator 5.1.2 over HV 4.1 -->
<resource-name>META-INF/validation-mapping-1.1.xsd</resource-name>
<resource-name>META-INF/validation-configuration-1.1.xsd</resource-name>
</prefer-application-resources>
</container-descriptor>
部署时出现以下异常:
<Aug 1, 2014 10:46:16 AM CEST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "8725280002070" for task "0". Error is: "weblogic.application.ModuleException: java.lang.ClassNotFoundException: org.hibernate.validator.HibernateValidator"
weblogic.application.ModuleException: java.lang.ClassNotFoundException: org.hibernate.validator.HibernateValidator
at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:114)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:100)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:175)
at weblogic.application.internal.flow.ModuleStateDriver$1.next(ModuleStateDriver.java:170)
at weblogic.application.utils.StateMachineDriver$ParallelChange.run(StateMachineDriver.java:80)
Truncated. see log file for complete stacktrace
Caused By: java.lang.ClassNotFoundException: org.hibernate.validator.HibernateValidator
at weblogic.utils.classloaders.GenericClassLoader.findLocalClass(GenericClassLoader.java:357)
at weblogic.utils.classloaders.GenericClassLoader.findClass(GenericClassLoader.java:318)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at weblogic.utils.classloaders.GenericClassLoader.loadClass(GenericClassLoader.java:186)
Truncated. see log file for complete stacktrace
>
当我使用 JPA2.0 和 Hibernate Validator 4.3.1 在 Weblogic 12.1.2 上配置我的项目时,我没有遇到此异常。
有人对如何解决这个问题有建议吗?
【问题讨论】:
-
你确定在 WEB-INF/lib 中有所有必要的 JAR,比如
hibernate-validator-5.1.2.Final.jar等。你能用 hibernate-*.jar 显示至少包含 JAR 的 lib 文件夹吗 -
我刚刚检查过:WEB-INF/lib 包含 hibernate-validator-5.1.2.Final.jar 和 validation-api-1.1.0.Final.jar
-
好吧,看起来 weblogic 无法在类路径中找到
org.hibernate.validator.HibernateValidator类。您可以尝试在 weblogic.xml 中添加<prefer-web-inf-classes>true</prefer-web-inf-classes>。 -
我现在得到一个非常不同的错误......我无法解释:
SEVERE: Could not load or parse web.xml java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory cannot be cast to javax.xml.parsers.DocumentBuilderFactory at javax.xml.parsers.DocumentBuilderFactory.newInstance(Unknown Source) at org.primefaces.config.ConfigContainer.initConfigFromWebXml(ConfigContainer.java:253) -
你能显示更新的 weblogic.xml。
标签: hibernate jpa hibernate-validator weblogic12c jpa-2.1