5

Datanucleusプラグインを使用してEclipseのGAE1.7.0の拡張クラスでDatanucleus2を正しく動作させるのに問題があります。これは、古いバージョンのGAEで、ここで手動の手順に従うと正常に機能しました。

http://www.datanucleus.org/products/accessplatform/guides/eclipse/index.html

ただし、アップグレード後、GAEにはこれらのライブラリが含まれるようになり(新しいバージョンのように見えます)、GAEには設定可能な新しい「エンハンサー」フラグがあります。とにかくEclipseでこのフラグを設定する方法が見つかりません。V2ライブラリが必要なときにGAEにはまだv1ライブラリが含まれているようで、Datanucleusはこのエラーに従って競合しています。

Jul 1, 2012 5:59:55 PM org.datanucleus.enhancer.DataNucleusEnhancer <init>
INFO: DataNucleus Enhancer : Using ClassEnhancer "ASM" for API "JPA"
Exception in thread "main" java.lang.NoSuchFieldError: NUCLEUS_CONTEXT_LOADER
    at org.datanucleus.NucleusContext.<clinit>(NucleusContext.java:73)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:171)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1265)

私はいろいろなことを試しました。私はすべてのデフォルトを使用してみました。v2ライブラリをDatanucleusランタイムクラスパスエントリに追加してみました。srcとlibsの両方でGAE1.7.0SDKのv1libsを削除しようとしました。しかし、どういうわけか、GAEはまだプルオーバーしています(またはV1ライブラリをプルオーバーしようとしています。上記のリンクで指定されているように手動で構成を設定する古い方法を試しました。今のように見えるので少しイライラします。これらのライブラリをまったく使用できない状況では、少なくとも古いバージョンのGAEでは、手動で機能するように設定できました。現在は何も機能していないようです。何か提案はありますか?

4

1 に答える 1

8

これと同じエラーが発生し、プロジェクトで次の方法で解決できました。

  • 設定のDataNucleusJPA設定を変更せずに、DavidBがコメントで提案したことを実行します。
  • war / WEB-INF/libからすべての「V1」jarを削除する

DavidBの提案を明確にするために、プロジェクトを保持するディレクトリを開きます。「.settings」という名前のフォルダーがあります。これを開いて、com.google.appengine.eclipse.core.prefsを編集します。3行目をgaeDatanucleusVersion=v1からgaeDatanucleusVersion=v2に変更するだけです。

これを行ったら、war / WEB-INF/libディレクトリから次のjarファイルを削除します。

  • datanucleus-appengine-1.0.10.final.jar
  • datanucleus-core-1.1.5.jar
  • datanucleus-jpa-1.1.5.jar
  • geronimo-jpa_3.0_spec-1.1.1.jar
  • geronimo-jta_1.1_spec-1.1.1.jar
  • jdo2-api-2.3-eb.jar

Eclipseを再起動すると、準備が整います。

于 2012-07-25T21:49:17.780 に答える