Persistence.xmlはGlassfish Deployment Descriptor(Intellij)にありません
-
27-09-2019 - |
質問
IntellijにはEJBとWebモジュールがあり、アノテーションを使用してデータベースにロードしたい5つのエンティティを作成しました。
モジュールの下のプロジェクト設定に行き、JPAファセットを追加することを選択します。EJB、Web、JPAファセットがあることは知っています。 eclipselinkを使用しているので、JPA設定の下でそれを確認し、その後、persistence.xmlファイルを追加し、ファイルを構成しました。
問題は、展開するときに、Persistence.xmlファイルを展開しないことです。つまり、アプリケーションのアンダー展開記述子を選択するときにGlassFish 3.0サーバーの下にそれを見つけることができないということです。 EJBモジュールの下でSun-Web-EJB.xmlだけを見つけます。 Persistence.xmlもWebモジュールの下にありませんが、とにかくEJBモジュールの下にあるべきだと思います。
GF Admin Console(Applications-> EJBモジュール - >展開記述子)の下にXMLファイルを見つけることができるように、私のPersistence.xmlをサーバーにロードしないことを意図していますか?
これが意図されていない場合、intellijでintellijでinservence.xmlをサーバーに展開する必要があることはありますか?多分それは特に私は私のJPAファセットでやる必要がありますか?
これに関するフィードバックをありがとうございます。私は、必要に応じて私のセットアップに関するより詳細な情報を提供できます。
解決
EJBモジュールの下でSun-Web-EJB.xmlだけを見つけます。
それはすでに奇妙です。私が間違っていない場合、これはWebモジュールの独自の展開記述子です。
Persistence.xmlもWebモジュールの下にありませんが、とにかくEJBモジュールの下にあるべきだと思います
それはすべて、エンティティをパッケージ化および展開する方法に依存します。これはいくつかの方法で実行できます(参照してください 永続性ユニットパッケージングオプションについて知っておくべきこと).
あなたのエンティティがejb-jarにパッケージ化されている場合、 persistence.xml
に配置する必要があります META-INF
ディレクトリ。
ただし、Webモジュール内でパッケージ化できます。これは、場合に簡単になります。上記のリンクを参照してください。
GF Admin Console(Applications-> EJBモジュール - >展開記述子)の下にXMLファイルを見つけることができるように、私のPersistence.xmlをサーバーにロードしないことを意図していますか?
物理ジャーが含まれていることを確認することをお勧めします META-INF/persistence.xml
.
これが意図されていない場合、intellijでintellijでinservence.xmlをサーバーに展開する必要があることはありますか?多分それは特に私は私のJPAファセットでやる必要がありますか?
言えない。たぶん、次のリンクが役立つ可能性があります: JPAサポートを有効にします.