1

我想用 JPA 2.0 创建 OSGI 持久性服务包。我使用 OpenJpa 作为持久性提供程序。

我尝试了一个支持 JPA 的示例 OSGI 捆绑包,当我的客户调用持久性功能时遇到了问题。该服务无法创建 EntityManagerFactory。始终为空。

我使用 Apache Karaf 作为安装服务的平台。

目前我正在 eclipse 中创建一个 OSGI 包并将其导出为一个包并将其部署在 Karaf 中。客户端可以调用该服务。但问题是当我得到EntityManagerFactory时。

我正在使用下面的代码来获取 EntityManagerFactory。

  OpenJPAEntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory
    ("StudentServiceProvider","META-INF/persistence.xml");

请告诉我如何使用 OpenJPA 创建 OSGI 持久性捆绑包。

4

2 回答 2

5

如果您使用的是 Karaf,最好使用 Karaf 的 Aries jpa 功能,它在 OSGi 环境中提供了很好的 JPA 集成。它避免了许多类加载问题,并允许您利用其他容器服务,如事务管理(如果需要)。您仍然可以使用 OpenJPA 作为您的 JPA 提供者。例如,请参阅有关 JaxEnter 的本教程,或这些幻灯片,这些幻灯片解释了 JPA 本身存在问题的原因

于 2013-03-09T12:08:51.490 回答
1

您可以查看我在 OSGi 上使用 Apache Aries 的 JPA 教程,就像 Holly 推荐的那样。

于 2013-03-09T13:06:37.600 回答