1

sdk orm jar を v2 (デフォルトでは sdk を含む) に変更したところ、いくつかの例外情報が得られました。 3.0.6 のバグ。それで、datanucleus-core-3.0.10.jar で置き換えます。しかし、pojo Enhancer をコンパイルすると成功しません。

java.lang.RuntimeException: Unexpected exception
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:76)
    at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:71)
    at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:51)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74)
    ... 2 more
Caused by: java.lang.NoSuchMethodError: org.datanucleus.plugin.PluginManager.<init>(Lorg/datanucleus/PersistenceConfiguration;Lorg/datanucleus/ClassLoaderResolver;)V
    at org.datanucleus.OMFContext.<init>(OMFContext.java:159)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:172)
    at org.datanucleus.enhancer.DataNucleusEnhancer.<init>(DataNucleusEnhancer.java:150)
    at org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1157)
    ... 7 more

これは、\lib\user\orm にある私の jar ファイルです

asm-3.3.1.jar
datanucleus-api-jdo-3.0.5.jar
datanucleus-api-jpa-3.0.6.jar
datanucleus-appengine-2.0.0-final.jar
datanucleus-core-3.0.10.jar
geronimo-jpa_2.0_spec-1.0.jar
jdo-api-3.0.jar
transaction-api-1.1.jar

私は一日中探していました。どんな問題があるか知っていますか?

4

2 に答える 2

0

appengine を新しい datanucleus でアップグレードしてもうまくいかない理由はわかっていると思います。クラスパスエントリではありません! ant-macro.xml拡張ステップをトリガーする に、 appengine-tools-api.jar へのリンクがあり、 class があることを発見しましたEnhancerTask。新しい datanucleus-enhancer-3.0.1.jar には独自のEnhancerTaskクラスがあるため、これはおそらく古いバージョンへのリンクです。そのため、( http://code.google.com/p/datanucleus-appengine/wiki/HowToUpdateTheSDKWithANewPluginVersionとは対照的に)古い appengine sdk で新しいバージョンの datanucleus を使用する唯一の方法は、 ant( https://developers.google.com/web-toolkit/doc/1.6/tutorial/appengine) またはおそらくeclipse-datanucleus-plugin. 残念ながら、このプラグインは私の Eclipse では正しく動作しません。プラグインをインストール/構成した後、サポートを追加することになっているプロジェクトコンテキストメニュー「datanucleus」はまだありません。というわけで、バージョンを試してみますant

于 2012-06-24T08:49:07.603 に答える
0

CLASSPATH のどこかに古いバージョンの datanucleus-core と datanucleus-enhancer があります。そのスタック トレースの「OMFContext」は、非常に長い間 DataNucleus に存在しませんでした。

于 2012-04-04T07:06:26.753 に答える