2011-12-03 9 views
2

.earファイルでは、私のEJBはいくつかの技術的制約のためにいくつかのjarとwarにコピーされます。また、これらのjarのうちの1つだけに、いくつかの永続ユニットを設定したpersistence.xmlファイルが含まれています。永続ユニットを耳のいくつかのjarファイルで利用できるように設定する

のために.... EjbA.classクラスコンフィギュレーションを取得できませんでした原因へ:

myear.ear 
|---- myjar1.jar 
|-------- META-INF/persistence.xml 
|---- myjar2.jar 
|---- mywar.war 

問題は、JBossが瓶「myjar2」内のクラスのための永続性構成と戦争を見つけることができないです次のエラー:これを解決するには、「myear.ear」

展開の サブデプロイメント「jar2.jar」でXXXXXという名前デプロイメントユニットを見つけることができません、私は唯一の持続性を含む新しいjarファイルを作成しようとしました。 xmlファイルですが、それはしません作業。

すべての耳のアーカイブを再編成することなく、どのように私のpersistence.xmlファイルをすべてのjarに共有することができますか? JPA仕様1として

答えて

2

あなたが同じの.earに定義するすべてのサブモジュールに表示されるEARレベルの永続性単位を定義することが可能であるべきである。

8.2.2永続ユニットスコープ

... EARのレベルで定義され

永続ユニットは、アプリケーションのすべてのコンポーネントに一般可視 あります。ただし、同じ名前の永続ユニット がEAR内のEJB-JAR、WAR、または アプリケーションjarファイルによって定義されている場合、その名前の永続ユニット は、EARレベルで定義されたコンポーネントには表示されません永続ユニット の参照でパーシスタンスユニット名#の構文を使用してパス の名前を使用して参照を曖昧さにしない限り、EJB-JAR、WAR、またはアプリケーションのjarファイル

注:永続性ユニットのルートとして EARのルートにjarファイルのJavaの永続1.0サポートの使用セクション8でしかし

、。この使用は、もはや に対応していません。ポータブルアプリケーションでは、の代わりに、この場合はEARライブラリディレクトリ を使用する必要があります。 [9]を参照してください。

私はlibフォルダにjarファイルを置こうとします。そのモジュールをEJBモジュールにする必要がある場合は、モジュールをearのルートに置く必要があります。そのため、persistence.xmlファイルで別のjarを作成できます。

+0

ありがとう、それは動作します! – jsebfranck

+0

それを聞いてうれしい;) –

関連する問題