При развертывании приложения EJB в Weblogic: 12.2.1, я сталкиваюсь с исключением:
"weblogic.management.DeploymentException: java.lang.NoSuchMethodError: javax.persistence.spi.PersistenceUnitInfo.getValidationMode ()Ljavax / persistence / ValidationMode "
У меня есть нижеприведенная конфигурация в persistence.xml для указания поставщика постоянства
<persistence-unit name="entityManager">
<!-- Use Hibernate persistency -->
<provider>org.hibernate.ejb.HibernatePersistence</provider>
и ниже в weblogic-application.xml
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>javax.persistence.*</package-name>
До этого исключения я сталкивался с исключением "Ошибка создания экземпляра класса поставщика постоянства java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence", которое было решено из
Ошибка создания экземпляраКласс провайдера постоянства java.lang.ClassNotFoundException: org.hibernate.ejb.HibernatePersistence
, и с тех пор я сталкиваюсь с этим исключением
Я предоставил ниже jar в WL_DOMAIN / lib:-
- hibernate-jpa-2.0-api-1.0.1.Final
- com.oracle.jpa2support_1.0.0.0_2-1
- hibernate
dom4j
Также предоставили в classpath следующие файлы в WL_DOMAIN --- setDomainEnv.cmd
set EXT_PRE_CLASSPATH = C: \ Projects \ GMPP-CBOSS \ MFSS \ MFSS \ lib \ hibernate \ slf4j- api.jar; C: \ Projects \ GMPP-CBOSS \ MFSS \ MFSS \ lib \ hibernate \ hibernate-jpa-api.jar
--- TrivEnv.cmd
set CLASSPATH = C: \ oracle \ Middleware2 \ modules \ javax.persistence_1.0.0.0_1-0- 2.jar; C: \ oracle \Middleware2 \ modules \ com.oracle.jpa2support_1.0.0.0_2- 1.jar;% CLASSPATH%
---- commonEnv.cmd ----- oracle_common / common / bin
set CLASSPATH = C: \ oracle \ Middleware2 \ modules \ javax.persistence_1.0.0.0_1-0- 2.jar; C: \ oracle \ Middleware2 \ modules \ com.oracle.jpa2support_1.0.0.0_2-1.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
>