Hibernate(4.2.7)JPA在Karaf(3.0)和Aries中的例外

Hibernate(4.2.7)JPA在Karaf(3.0)和Aries中的例外,hibernate,jpa,osgi,karaf,Hibernate,Jpa,Osgi,Karaf,我使用的是Karaf3.0.0,Hibernate4.2.7.Final,容器管理的jpa 持久性捆绑包在启动时移动到GracePeriod状态,然后进入失败状态。下面是启动捆绑包时来自Karaf日志的错误 2014-04-07 16:46:01716 |信息|本地用户卡拉夫| BlueprintContainerImpl | 4-org.apache.aries.blueprint.core -1.3.0 | Bundle ecomm.dao.impl.hibernate正在等待依赖项[(&(

我使用的是Karaf3.0.0,Hibernate4.2.7.Final,容器管理的jpa

持久性捆绑包在启动时移动到GracePeriod状态,然后进入失败状态。下面是启动捆绑包时来自Karaf日志的错误

2014-04-07 16:46:01716 |信息|本地用户卡拉夫| BlueprintContainerImpl | 4-org.apache.aries.blueprint.core -1.3.0 | Bundle ecomm.dao.impl.hibernate正在等待依赖项[(&(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=ecomm))(objectClass=javax.persistence.EntityManagerFactory)), (&(&(org.apache.aries.jpa.proxy.factory=true)(osgi.unit.name=ecomm))(objectClass=javax.persistence.EntityManagerFactory))]

在安装hibernate之前,我已经安装了jpa、事务和jndi特性。我还没有安装openjpa功能

此外,Aries JPA容器管理的上下文和Aries JPA容器捆绑包都是活动的。还注意到,没有如建议的那样提供EntityManagerFactory服务

下面是hibernate捆绑包的快照

karaf@root()> bundle:list
START LEVEL 100 , List Threshold: 50
 ID | State       | Lvl | Version            | Name
------------------------------------------------------------------------------------
115 | Active      |  80 | 3.0.0              | Apache Karaf :: JNDI :: Command
121 | Active      |  80 | 0.9.0              | ClassMate
122 | Active      |  80 | 2.7.7.5            | Apache ServiceMix :: Bundles :: antlr
123 | Active      |  80 | 1.8.2.2            | Apache ServiceMix :: Bundles :: ant
124 | Active      |  80 | 1.6.1.5            | Apache ServiceMix :: Bundles :: dom4j
125 | Active      |  80 | 1.14.1.1           | Apache ServiceMix :: Bundles :: serp
126 | Active      |  80 | 3.18.1.GA          | Javassist
127 | Active      |  80 | 1.0.2.Final        | JACC 1.4 API
128 | Active      |  80 | 0                  | wrap_mvn_org.jboss_jandex_1.1.0.Final
129 | Active      |  80 | 3.1.3.GA           | JBoss Logging 3
130 | Active      |  80 | 4.0.4.Final        | hibernate-commons-annotations
135 | Active      |  80 | 4.2.7.Final        | hibernate-core
136 | Active      |  80 | 4.2.7.Final        | hibernate-entitymanager
137 | Active      |  80 | 4.2.7.Final        | hibernate-osgi
138 | Active      |  80 | 1.1.0.201404041646 | Ecomm Store
139 | Active      |  80 | 1.1.0.201404041646 | Ecomm Dao
140 | GracePeriod |  80 | 1.4.0.201404071644 | Ecomm DAO Impl
我的配置中是否缺少某些内容


谢谢。

我为你的另一个问题指出了一个可能的解决方案,这也适用于这里。看


无论如何,现在一定要远离Hibernate4.3.x,因为AriesJPA至今还不支持它。4.2.7应该可以工作。

在更改捆绑包的启动顺序后,问题现在重新解决。
必须在启动hibernate osgi捆绑包之前启动持久化单元捆绑包(在我的例子中为“Ecomm DAO Impl”)。

感谢您的回复。我会试试你的建议。