Java 8 weblogic.management.DeploymentException:java.lang.NoSuchMethodError:javax.persistence.spi.PersistenceUnitInfo.getValidationMode()
在Weblogic:12.2.1上部署EJB应用程序时,我面临一个例外: “weblogic.management.DeploymentException:java.lang.NoSuchMethodError:javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode” 我在persistence.xml中有以下配置来指定持久性提供程序Java 8 weblogic.management.DeploymentException:java.lang.NoSuchMethodError:javax.persistence.spi.PersistenceUnitInfo.getValidationMode(),java-8,jpa-2.0,ejb-3.0,weblogic12c,Java 8,Jpa 2.0,Ejb 3.0,Weblogic12c,在Weblogic:12.2.1上部署EJB应用程序时,我面临一个例外: “weblogic.management.DeploymentException:java.lang.NoSuchMethodError:javax.persistence.spi.PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode” 我在persistence.xml中有以下配置来指定持久性提供程序 <persistenc
<persistence-unit name="entityManager">
<!-- Use Hibernate persistency -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
org.hibernate.ejb.HibernatePersistence
在weblogic-application.xml中
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>javax.persistence.*</package-name>
antlr*
javax.persistence*
在此异常之前,我遇到了一个异常“实例化持久性提供程序类java.lang.ClassNotFoundException:org.hibernate.ejb.HibernatePersistence时出错”,该异常是从
从那时起,我就面临着这个例外
我在WL_域/lib中提供了以下JAR:-
<28 May, 2018, 3:38:26,86 PM IST> <Warning> <Deployer> <WL-149078> <Stack
trace for message 149004
weblogic.management.DeploymentException: java.lang.NoSuchMethodError:
javax.persistence.spi.PersistenceUnitInfo.getValidationMode()
Ljavax/persistence/ValidationMode;
at weblogic.application.internal.BaseDeployment .throwAppException
(BaseDeployment.java:132)
at weblogic.application.internal.BaseDeployment.prepare
(BaseDeployment.java:242)
at weblogic.application.internal.EarDeployment.prepare
(EarDeployment.java:66)
at weblogic.application.internal. DeploymentStateChecker.prepare
(DeploymentStateChecker.java:158)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.
prepare(AppContainerInvoker.java:65)
Truncated. see log file for complete stacktrace
Caused By: java.lang.NoSuchMethodError:
javax.persistence.spi.PersistenceUnitInfo.getValidationMode()
Ljavax/persistence/ValidationMode;
at org.hibernate.ejb.Ejb3Configuration.configure
(Ejb3Configuration.java:625)
at org.hibernate.ejb.HibernatePersistence.createContainer
EntityManagerFactory (HibernatePersistence.java:73)
at weblogic.persistence.BasePersistenceUnitInfo.initializeEntity
ManagerFactory(BasePersistenceUnitInfo.java:614)
at weblogic.persistence.BasePersistenceUnitInfo.
init(BasePersistenceUnitInfo.java:202)
at weblogic.persistence.BaseJPAIntegrationProvider.
createPersistenceUnitInfo(BaseJPAIntegrationProvider.java:54)
Truncated. see log file for complete stacktrace
>
有可能javax.persistence_1.0.0.0_2-0-0.jar被添加到服务器类路径的开头和结尾(在DOMAIN_HOME/lib dir中) 因此,同一服务器类路径中同一jar的两个版本会导致不一致 解决方案 从域\u HOME/lib目录中删除javax.persistence\u 1.0.0\u 2-0-0.jar 资料来源: