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 を使用している場合は、OSGi 環境での適切な JPA 統合を提供する Karaf の Aries jpa 機能を使用することをお勧めします。多くのクラスローディングの問題を回避し、必要に応じてトランザクション管理などの他のコンテナー サービスを利用できるようにします。OpenJPA を JPA プロバイダーとして引き続き使用できます。たとえば、JaxEnter のこのチュートリアル、またはJPA 自体に問題がある理由を説明するこれらのスライドを参照してください。

于 2013-03-09T12:08:51.490 に答える
1

Holly が推奨するように、Apache Aries を使用した OSGi 上の JPA に関する私のチュートリアルをご覧ください。

于 2013-03-09T13:06:37.600 に答える