2013-03-08 85 views
1

我想用JPA 2.0創建OSGI持久性服務包。我使用OpenJpa作爲持久性提供者。如何創建JPA OSGI包

我試着用JPA支持的示例OSGI包,當我的客戶調用持久性功能時遇到問題。該服務不能創建EntityManagerFactory。總是它是空的。

我使用Apache Karaf作爲安裝服務的平臺。

目前我正在eclipse中創建一個OSGI包,並將它作爲一個包導出並部署到Karaf中。客戶可以致電該服務。但問題是當我得到EntityManagerFactory

我正在使用波紋管代碼來獲取EntityManagerFactory。

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

請給我提供一個清晰的概念,如何使用OpenJPA創建OSGI persitence包。

回答

5

如果你使用的是Karaf,你最好使用Karaf的Aries jpa特性,它在OSGi環境中提供了一個不錯的JPA集成。它避免了許多類加載問題,並允許您利用其他容器服務(如事務管理),如果您需要的話。您仍然可以使用OpenJPA作爲您的JPA提供程序。例如參見tutorial on JaxEnterthese slides which explain why JPA on its own has issues