【问题标题】:Use Hibernate 4.3.7.Final and JPA 2.1 on Weblogic 10.3.6在 Weblogic 10.3.6 上使用 Hibernate 4.3.7.Final 和 JPA 2.1
【发布时间】:2015-01-12 05:11:28
【问题描述】:

我正在尝试在 weblogic 10.3.6 上使用最新版本的 Hibernate 和 JPA,并得到 java.lang.ClassCastException: org.hibernate.jpa.HibernatePersistenceProvider cannot be cast to javax.persistence.spi.PersistenceProvider。

以下是我已经完成的事情。

  1. 创建新版本的 Hibernate 库

  2. 升级我的 JodaTime 库

  3. 为服务器添加 JPA 和持久性升级以接受 JPA 2.0(尽管我们将使用自己的库)。 设置 PRE_CLASSPATH=%BEA_HOME%\modules\javax.persistence_1.0.0.0_2-0-0.jar;%BEA_HOME%\modules\com.oracle.jpa2support_1.0.0.0_2-1.jar;%PRE_CLASSPATH%

  4. 更改了persistance.xml

Persistance.xml

 <?xml version="1.0" encoding="UTF-8"?>
 <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns
 /persistence/persistence_1_0.xsd">
    <persistence-unit name="BagTagAgentEJB" transaction-type="RESOURCE_LOCAL">
        <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
        <jta-data-source>jdbc/GuestSelfService</jta-data-source>
        <class>hibernate.DataAccessObject.bla</class>
        <properties>
            <property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect" > />
            <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.WeblogicTransactionManagerLookup" />
        </properties>
 </persistence-unit>
 </persistence>    

weblogic-application.xml

  <wls:prefer-application-packages>
    <wls:package-name>antlr.*</wls:package-name>
    <wls:package-name>javassist.*</wls:package-name>
    <wls:package-name>org.dom4j.*</wls:package-name>
    <wls:package-name>org.apache.commons.collections.*</wls:package-name>
    <wls:package-name>org.apache.log4j.*</wls:package-name>
    <wls:package-name>org.hibernate.*</wls:package-name>
    <wls:package-name>javax.persistence.*</wls:package-name>
    <wls:package-name>org.joda.*</wls:package-name>
    <wls:package-name>org.slf4j.*</wls:package-name>
  </wls:prefer-application-packages>

我在部署时收到以下错误

at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:469)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:45)
at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:648)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:191)
at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:59)
at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:208)
at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)
at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:545)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: weblogic.deployment.EnvironmentException: Error processing persistence unit BagTagAgentEJB of module BagTagAgentEJB-1.0.0-SNAPSHOT.jar: Error instantiating the Persistence Provider class org.hibernate.jpa.HibernatePersistenceProvider of the PersistenceUnit BagTagAgentEJB: java.lang.ClassCastException: org.hibernate.jpa.HibernatePersistenceProvider cannot be cast to javax.persistence.spi.PersistenceProvider

at weblogic.deployment.BasePersistenceUnitInfoImpl.getPersistenceProvider(BasePersistenceUnitInfoImpl.java:375)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
at weblogic.deployment.BasePersistenceUnitInfoImpl.<init>(BasePersistenceUnitInfoImpl.java:158)
at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:46)
at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:349)
at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptor(AbstractPersistenceUnitRegistry.java:263)
at weblogic.deployment.ModulePersistenceUnitRegistry.<init>(ModulePersistenceUnitRegistry.java:69)
at weblogic.ejb.container.deployer.EJBModule.setupPersistenceUnitRegistry(EJBModule.java:223)
at weblogic.ejb.container.deployer.EJBModule$1.execute(EJBModule.java:324)
at weblogic.deployment.PersistenceUnitRegistryInitializer.setupPersistenceUnitRegistries(PersistenceUnitRegistryInitializer.java:62)
at weblogic.ejb.container.deployer.EJBModule.prepare(EJBModule.java:393)

添加服务器类路径:

WLS Start Mode=Development
.
CLASSPATH=C:\dev\app\Oracle\OSB_MI~1\ORACLE~1\modules\oracle.jdbc_11.1.1\ojdbc6dms.jar;
C:\dev\app\Oracle\OSB_Middleware\modules\javax.persistence_1.0.0.0_2-0-0.jar;C:\dev\app
\Oracle\OSB_Middleware\modules\com.oracle.jpa2support_1.0.0.0_2-0.jar;C:\dev\app\Oracle
\OSB_MI~1\ORACLE~2\lib\osb-server-modules-ref.jar;C:\dev\app\Oracle\OSB_MI~1
\patch_wls1036\profiles\default\sys_manifest_classpath\weblogic_patch.jar;C:\dev\app
\Oracle\OSB_MI~1\patch_oepe180\profiles\default\sys_manifest_classpath
\weblogic_patch.jar;C:\dev\app\Oracle\OSB_MI~1\patch_ocp371\profiles\default
\sys_manifest_classpath\weblogic_patch.jar;C:\dev\app\Oracle\OSB_MI~1\patch_adfr1111
\profiles\default\sys_manifest_classpath\weblogic_patch.jar;C:\dev\app\Oracle\OSB_MI~1
\JDK160~1\lib\tools.jar;C:\dev\app\Oracle\OSB_MI~1\WLSERV~1.3\server
\lib\weblogic_sp.jar;C:\dev\app\Oracle\OSB_MI~1\WLSERV~1.3\server\lib\weblogic.jar;C:
\dev\app\Oracle\OSB_MI~1\modules\features\weblogic.server.modules_10.3.6.0.jar;C:
\dev\app\Oracle\OSB_MI~1\WLSERV~1.3\server\lib\webservices.jar;C:\dev\app\Oracle
\OSB_MI~1\modules\ORGAPA~1.1/lib/ant-all.jar;C:\dev\app\Oracle\OSB_MI~1\modules
\NETSFA~1.0_1/lib/ant-contrib.jar;C:\dev\app\Oracle\OSB_MI~1\ORACLE~1\soa\modules
\commons-cli-1.1.jar;C:\dev\app\Oracle\OSB_MI~1\ORACLE~1\soa\modules
\oracle.soa.mgmt_11.1.1\soa-infra-mgmt.jar;C:\dev\app\Oracle\OSB_Middleware\Oracle_OSB1
\soa\modules\oracle.soa.common.adapters_11.1.1\oracle.soa.common.adapters.jar;C:
\dev\app\Oracle\OSB_MI~1\ORACLE~1\modules\oracle.jrf_11.1.1\jrf.jar;C:\dev\app\Oracle
\OSB_MI~1\ORACLE~2\lib\version.jar;C:\dev\app\Oracle\OSB_MI~1\ORACLE~2\lib\alsb.jar;C:
\dev\app\Oracle\OSB_MI~1\ORACLE~2\3rdparty\lib\j2ssh-ant.jar;C:\dev\app\Oracle\OSB_MI~1
\ORACLE~2\3rdparty\lib\j2ssh-common.jar;C:\dev\app\Oracle\OSB_MI~1\ORACLE~2\3rdparty
\lib\j2ssh-core.jar;C:\dev\app\Oracle\OSB_MI~1\ORACLE~2\3rdparty\lib\j2ssh-
dameon.jar;C:\dev\app\Oracle\OSB_MI~1\ORACLE~2\3rdparty\classes;C:\dev\app\Oracle
\OSB_MI~1\ORACLE~2\lib\external\log4j_1.2.8.jar;C:\dev\app\Oracle\OSB_MI~1\USER_P~1
\domains\OSB_DO~1\config\osb;C:\dev\app\Oracle\OSB_MI~1\WLSERV~1.3\common\derby
\lib\derbyclient.jar;C:\dev\app\Oracle\OSB_MI~1\WLSERV~1.3\server\lib\xqrl.jar;C:
\dev\app\Oracle\OSB_Middleware\wlserver_10.3\server\ext\postgresql-9.2-1002.jdbc4.jar

.
PATH=C:\dev\app\Oracle\OSB_MI~1\patch_wls1036\profiles\default\native;C:\dev\app\Oracle
\OSB_MI~1\patch_oepe180\profiles\default\native;C:\dev\app\Oracle\OSB_MI~1\patch_ocp371
\profiles\default\native;C:\dev\app\Oracle\OSB_MI~1\patch_adfr1111\profiles\default
\native;C:\dev\app\Oracle\OSB_MI~1\WLSERV~1.3\server\native\win\32;C:\dev\app\Oracle
\OSB_MI~1\WLSERV~1.3\server\bin;C:\dev\app\Oracle\OSB_MI~1\modules\ORGAPA~1.1\bin;C:
\dev\app\Oracle\OSB_MI~1\JDK160~1\jre\bin;C:\dev\app\Oracle\OSB_MI~1\JDK160~1\bin;C:
\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Windows\system32;C:\Windows;C:
\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program 
Files\Java\jdk1.6.0_24\bin;C:\maven\maven-2.2.1\bin;C:\Program Files\SlikSvn\bin;C:
\Program Files\TortoiseSVN\bin;C:\cygwin64\bin;C:\HashiCorp\Vagrant\bin;C:\dev\apps
\mongodb\mongodb-win32-x86_64-2.4.5\bin;C:\dev\apps\python\Python27;C:\dev\apps\python
\Python27\Scripts;C:\dev\apps\jython\jython2.7b1;C:\dev\apps\jython\jython2.7b1\bin;C:
\Program Files (x86)\Apache Software Foundation\Ant\apache-ant-1.9.4\bin;.;C:\dev\app
\Oracle\OSB_MI~1\WLSERV~1.3\server\native\win\32\oci920_8

【问题讨论】:

  • 你能解决这个问题吗?如果是,请您发表您的答案吗?

标签: java hibernate jakarta-ee jpa


【解决方案1】:

编辑第 3 步,更新 commEnv.cmd 文件以使用 jpa 2.1 而不是 jpa2.1,它对我有用。

这就是我的样子

set PRE_CLASSPATH=%PRE_CLASSPATH%;%MW_HOME%\modules\com.oracle.jpa2support_1.0.0.0_2-1.jar;%MW_HOME%\modules\javax.persistence_1.1.0.0_2-0.jar

【讨论】:

    猜你喜欢
    • 2015-01-03
    • 1970-01-01
    • 2013-10-25
    • 1970-01-01
    • 2019-03-04
    • 1970-01-01
    • 2016-03-28
    • 2014-07-10
    • 2015-08-12
    相关资源
    最近更新 更多