如何创建JPA OSGI包

Jav*_*kar 1 osgi openjpa apache-karaf osgi-bundle

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

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

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

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

我使用波纹管代码来获取EntityManagerFactory.

  OpenJPAEntityManagerFactory emf = OpenJPAPersistence.createEntityManagerFactory
    ("StudentServiceProvider","META-INF/persistence.xml");
Run Code Online (Sandbox Code Playgroud)

请告诉我如何使用OpenJPA创建OSGI persitence bundle.

Hol*_*ins 5

如果您正在使用Karaf,那么最好使用适用于Karaf的Aries jpa功能,它可以在OSGi环境中提供良好的JPA集成.它避免了许多类加载问题,并允许您利用其他容器服务,如事务管理,如果您需要它们.您仍然可以使用OpenJPA作为JPA提供程序.例如,参见JaxEnter上的教程,或者这些幻灯片解释了为什么JPA本身存在问题.