Eclipseで次のエラーが表示されます。
Persistence.xmlファイルには、認識されたコンテンツがありません。
Persistence.xmlファイルはアプリケーションでうまく機能しますが、Eclipseは引き続きこのエラーを表示します。ファイルを移動し、m2Eclipseでプロジェクト構成を更新した後にこれを取得しました。ファイル自体は変更しませんでした。誰もこれを解決する方法を知っていますか?
persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://Java.Sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://Java.Sun.com/xml/ns/persistence http://Java.Sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="localDB" transaction-type="RESOURCE_LOCAL">
<provider>org.Apache.openjpa.persistence.PersistenceProviderImpl</provider>
<class>package.Users</class>
<properties>
<!-- enable warnings for debugging -->
<property name="openjpa.Log" value="DefaultLevel=TRACE, Runtime=INFO, Tool=INFO, SQL=TRACE"/>
<!-- connection properties -->
<property name="openjpa.ConnectionURL" value="jdbc:mysql://localhost/test"/>
<property name="openjpa.ConnectionDriverName" value="com.mysql.jdbc.Driver"/>
<property name="openjpa.ConnectionUserName" value="root"/>
<property name="openjpa.ConnectionPassword" value=""/>
</properties>
</persistence-unit>
</persistence>
更新
Jpaと組み合わせたm2Eclipseのバグのように見えます。
https://bugs.Eclipse.org/bugs/show_bug.cgi?id=25132
エラーではなく警告として表示するようにオプションを設定して一時的に解決しました
次の方法で問題を修正しました(RAD v8.5.1)を使用しています):
エラーと同じ問題がありました
Persistence.xmlファイルに認識されたコンテンツがありません
Eclipseでファイルを編集することにより修正され、すべての編集が実行されます。そして、エラーを保存した後に逃げました。
<persistence xmlns="http://Java.Sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/persistence
http://Java.Sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
私のために働いた!
ここで問題が何であるかがわかりました。JPAファセットは、META-INFフォルダーがソースフォルダーの直下にあると想定しています。 Mavenプロジェクトを使用している場合は、src/main/resourcesまたはsrc/test/resourcesなどの可能性があります。 persistence.xmlがこれらのフォルダーの下にある場合、文句を言います。新しいソースフォルダーを作成し(「jpa」と呼びます)、そこにMETA-INF/persistence.xmlを作成すると、正常に検出されます。 (また、クリーン/クローズ/オープンプロジェクトを実行する必要がありました)
これは確かに苦痛です。..そして、私はこれがうまく機能しない多くの状況を見ることができます。
Eclipse 3.6(Helios)でも同じ問題がありました。原因は、JPA FacetがJPAバージョン1.0に設定されていたが、persistence.xmlファイルでJPAバージョン2を指定していたため、JPA Facetをバージョン2.0に変更すると問題はなくなりました。 ([プロジェクト]-> [プロパティ]-> [プロジェクトファセット]-> [構成]ドロップダウン-> [最小JPA 2.0構成]に設定します)
このエラーを警告に変えると、問題がなくなる可能性がありますが、Eclipse Daliプラグインの根本的な問題は修正されません。また、非常に便利なJPA構造およびJPA詳細ビューが機能しないことも意味します。
OPが提供するリンクとここでのほとんどの回答のアプローチは、実際にはMavenがpersistence.xmlファイルをフィルター処理して、Eclipseにそれを無視するように指示するという別の問題を回避するためのものです。この問題の実行可能な回避策は here で説明されており、プロジェクトプロパティのクラスパスのsrc/main/resourcesエントリから除外された「**」を削除する必要があります。
OPの元の質問に戻って、この同じ正確なエラーメッセージが出ました(このメッセージ自体は、persistence.xmlファイルが見つかったことを示しています)。私にとっての解決策は、永続化XML要素をこれから変更することでした。
<persistence xmlns="http://Java.Sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/persistence
http://Java.Sun.com/xml/ns/persistence/persistence_1_0.xsd"
version="1.0">
これに:
<persistence xmlns="http://Java.Sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/persistence
http://Java.Sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
一度変更すると、エラーはなくなり、ダリはすぐに生き返り、すべてが機能するようになりました。これがいつか誰かを助けることを願っています。
このバグは、特定のIndigo(3.7)バージョンで再現されました。こちらをご覧ください: https://bugs.Eclipse.org/bugs/show_bug.cgi?id=35781
プロジェクトを右クリック-> Maven->プロジェクト構成の更新...
このmightは、特定のビルドパスエントリおよび/またはデプロイメントアセンブリを破壊します。これは非常に迷惑なので、Maven depを変更する場合にのみ行ってください。
パッチがリリースされるまでpersistence.xmlメッセージを回避するには、多くの操作でプロジェクトをクリーンアップするエラーレベルを「無視」に設定しても動作しない必要があります。 。これは完全に残念です。
Project-Properties-Java Persistence:に移動し、 "Canonical metamodel(JPA 2.0)"セクションの "Source Folder"を "src/generated/resources"に設定することでこれを修正しました。
この問題は次の場合に発生します
解決策は
これらの設定を変更したら、プロジェクトをクリーンアップします。
私はEclipse marsを使用していますが、これとまったく同じエラーが発生しました。私がしなければならなかったことは、プロジェクトファセットのjpaのバージョンを1セットに設定することでした。 right click project -> Properties -> Project Facets
私の場合、jpaのバージョンを2.1に設定します。
注: jpaプロジェクトファセットを構成しても、エラーは削除されません。プラットフォームも構成する必要があります。
次に、JPAプラットフォームを構成する必要がありました。 right click project -> Properties -> JPA
。私の場合、platoformをHibernate 2.1に変更します。
この問題は、Persistence XMLエディターでpersistence.xmlを開き、下部に単一のSource
タブのみがあり、一般、接続、オプション、プロパティなどの他のタブがない場合にも現れます。
これに関するアップデートはありますか?これはまだ正しいように見える問題ですか? JPAプロジェクトを作成し、Mavenプロジェクトに変換すると、エラーが表示され、推奨される方法でそれを取り除くことはできません。
編集
わかりましたので、実際に Mavenディレクトリ形式 でいくつかのフォルダーを操作した後、まだ動作しませんでしたが、src/main/Java
の下に、src/main/resources/META-INF
それは解決されました。
Mavenプロジェクトの作成とJPAファセットの追加も機能しますが、これはJPAファセットがMETA-INFおよびpersistence.xmlファイルをsrc/main/Java
に追加するためです。
Xmlファイルのandthingを変更したり、srcフォルダーにxmlを追加したりする必要はありません。 persistance.xmlファイルをMETA-INFフォルダーに配置してから、META-INF src/main/resourceフォルダーを配置します。次の方法を試してください:project> Java Build path > Source Tab > ProjectName/src/main/resource > set Included(All) and Excluded(None).
を右クリックして、プロジェクトをクリーンアップしてビルドします。それはあなたのために働くでしょう。 RAD 7&8..5&Eclipse。
Eclipseで「シンボリックリンク」を作成することで問題を修正しました。したがって、Mavenが期待し、m2Eclipseが必要とするように、persistence.xmlファイルはsrc/main/resources/META-INFに残ります。ただし、Daliの問題を修正するには、src/main/resources/META-INFのファイルにリンクするsrc/main/Java/META-INFに新しいファイルを作成します。これを行うには、新しいファイルを作成するときに「詳細」オプションを押し、「参照...」ボタンを使用してファイルを検索します。これにより、META-INFフォルダーに物理ファイルが作成されないことに注意してください。ただし、リンクを作成するにはフォルダー自体が必要です。
それがあなたのために働くことを願っています。
Tomcatが埋め込まれたEclipseでsrc/main/Java/META-INF/persistence.xml
が正常に動作していました。 Mavenで構築されたWARにコピーされていなかったため、src/main/resources/META-INF
に移動しました。
src/main/resources/META-INF/persistence.xml
は検証されません。
Xyz_persistence.xmlに名前を変更すると、正常に検証されます。
persistence.xmlに名前を変更すると、検証に失敗します。
これらの迷惑な状況が発生したとき、私はしばしば私のような多くの異なる「解決策」を見つけますが、それらのほとんどは普遍的に適用できません。
だから、ここに私の「解決策」があり、それはバグを回避するためのハックだと思う:
エラー「persistence.xmlファイルにコンテンツが認識されていません」を削除するには、JPA Validatorを無効にします。
クリーニングと再構築が必要になる場合があります。あなたのマイレージは異なる場合があります。
この問題はIndigo(2011年6月にリリース)で修正されました。 https://bugs.Eclipse.org/bugs/show_bug.cgi?id=251323#c24 および https: //issues.sonatype.org/browse/MECLIPSEWTP-11 。
「persistence.xmlファイルには認識されたコンテンツがありません。」エラーは、プロジェクトのインポートまたはワークスペースの起動時にランダムに表示される場合がありますが、プロジェクトのクリーンアップまたはMavenプロジェクトの更新で修正できます。これはSR2のDaliで修正されます。
私は同じ問題に遭遇しました。プロジェクトのプロパティに移動-> Java build path-> source、remove * /。src/main/resources sourceのJava除外属性。次にMETA-INF/persistenceを追加.xml。その後、Eclipseを再起動しますProject ExplorerのJPA Contentの下にpersistence.xmlが表示されたら、変更を元に戻します。
まあ、私が提案することは愚かに見えるが、魔法のように動作します。ところで、私のEclipseバージョンは3.6です。
META-INFフォルダーをsrc/main/resourcesにドラッグし、src/test/resourcesにドラッグして戻すことで修正しました。問題を修正するのに必要なのはそれだけです。上記のすべての手順を試してみましたが、それらのどれも私のために働いていないようで、最終的にこの1つはトリックをやりました。
私も同じ問題を抱えています。私の解決策:persistence.xmlファイルを右クリック-> JPA-Tools-> Synchronize Class List。その後、それは解決されました。
私にとっては、Eclipseの[マーカー]タブからすべてのメッセージをクリアすると動作しました
プロジェクト構造のどこにファイルがありますか?
Refについては、maven-module-name/src/main/resources/META-INF /にあります
私の場合は、リソースフォルダーのビルドパスで「除外」を。に設定するバグがあるMavenプラグインでした。 。を削除すると、問題が解決しました
これを行うことで問題を解決しました:
xsi:schemaLocation = "http://Java.Sun.com/xml/ns/persistence persistence_2_0.xsd"
追加した <?xml version="1.0" encoding="UTF-8"?>
頂点で。
プロジェクトをクリーンビルドします。エラーはなくなりました。
「h ttp://Java.Sun.com/xml/ns/persistence/」を再度追加しました。
xsi:schemaLocation = "http://Java.Sun.com/xml/ns/persistence http://Java.Sun.com/xml/ns/persistence/persistence_2_0.xsd "
プロジェクトをクリーンビルドします。エラーはありません。
削除しました <?xml version="1.0" encoding="UTF-8"?>
頂点で。
プロジェクトをクリーンビルドします。エラーはまだありません。
これが将来誰かを助けることを願っています。
私は同じ問題を抱えていましたが、それをなくすために、この行がファイルの先頭の最初の行であることを確認する必要がありました(先頭の空の行またはスペースはありません):
<?xml version="1.0" encoding="UTF-8"?>
何度か同じ問題が発生しましたが、ファイルの内容をコピーして削除し、新しいpersistence.xmlファイルを作成して、内容を貼り付けて戻すことができました。
わかりました...一番上のものがそうでなかったので、私のために働いた別のかなり堅牢なソリューション:
私はMercurialを使用し、現在のバージョンと最後のバージョンに顕著な違いなしで簡単に戻ることができたため、次のように動作しました。
(この問題とは無関係ないくつかの重要な変更をコミットしました)
私が認識したのは、問題はJava Builderがwar/WEB-INF/classes/
ファイルを生成しなかったためである可能性があることでした。以下は、私のプロジェクトを構築する際にこのトレイルをたどるのにうまくいきませんでした:
persistence.xml
の名前変更またはさまざまな方法での編集いくつかの内部状態を変更できないかのように、それはそれを助けませんでした。
再現するのが難しいので言うのは難しい(あなたのpersistence.xml
は完全に有効です)が、次のことを試してください。
clean
の両方)同じエラーが発生しましたが、別の方法で解決しました。
問題は、META-INFをソースフォルダーと見なす必要があることです。/ejbModuleの下にあるので(私の場合はEJBプロジェクトです)、ビルドパス上にあると想定しました。そして、そうではなかった。実際には、ビルドパスの「除外」リストにありました。そのため、プロジェクトエクスプローラービューでMETA-INFフォルダーを右クリックし、[ビルドパス]メニューで[含める]を選択するだけでした。次に、Eclipseにプロジェクトをクリーンアップするように依頼しましたが、すべてが正常でした。
宜しくお願いします。