私は 2 日間 DN/GAE の問題と戦っています。DN v2 にアップグレードされた GAE SDK 1.7.0、GWT SDK 2.4.0、Eclipse (Indigo) を使用しています。
Service クラスでエンハンサーを実行します。 .shared.Service」はすでに拡張されています。21:24:19,468 DEBUG [DataNucleus.Enhancer] - クラス「bookit.shared.Service」の拡張が完了しました
../WAR/WEB-INF/classes/bookit/shared/Service.class の直下のどこにも bookit.shared.Service.class の他のコピーはありません。さすがに拡張OKです(非拡張サイズは7KB、拡張-12KB)。
GWT アプリを起動すると、サーバー側で次のメッセージが表示され続けます: org.datanucleus.exceptions.NucleusFatalUserException: No meta data for bookit.shared.Service. おそらく、このクラスでエンハンサーを実行する必要がありますか? org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException (NucleusJDOHelper.java:498) で
DN デバッグ モードをオンにしました (log4j.category.DataNucleus=DEBUG, A1) が、上記のメッセージ以外に有用なものは何も表示されません。
質問: 実行時にクラス (bookit.shared.Service) が拡張されていると DN が認識しないのはなぜですか? DN はそれをロードし、実際には拡張されています (デバッガーで確認しました) が、クエリのコンパイル時には拡張されていないと考えられます。メタデータがロードされていないようです (私のクラスは、メタファイルではなく JDO 注釈を使用して DN の目的でマークされています)。
(org.datanucleus.exceptions.NucleusFatalUserException: bookit.shared.Service のメタデータがありません。おそらく、このクラスでエンハンサーを実行する必要がありますか? com.google.appengine.datanucleus.query.DatastoreQuery.compile(DatastoreQuery.java:205) )))