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

时间:2014-04-07 12:25:42

标签: hibernate jpa osgi karaf

我使用的是Karaf 3.0.0,Hibernate 4.2.7.Final,容器管理的jpa。

持久性捆绑包在启动时移至GracePeriod状态,然后转到Failure。以下是启动捆绑时Karaf日志的错误。

  

2014-04-07 16:46:01,716 |信息|本地用户karaf |   BlueprintContainerImpl | 4 - org.apache.aries.blueprint.core    - 1.3.0 |捆绑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 =真)(osgi.unit.name =逸康))(objectClass的= javax.persistence.EntityManagerFactory))]

我在安装hibernate之前安装了jpa,transaction和jndi功能。我还没有安装openjpa功能。

此外, Aries JPA容器管理上下文 Aries JPA容器包都是活动的。另请注意,Jpa-hibernate error while starting the service

建议没有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

我的配置中是否缺少某些内容?

谢谢。

2 个答案:

答案 0 :(得分:0)

我指出了另一个问题的可能解决方案,这也应该适用于此。见Jpa-hibernate error while starting the service

在任何情况下都要确保远离Hibernate 4.3.x,因为aries jpa目前还不支持它。 4.2.7应该可以工作。

答案 1 :(得分:0)

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