我已经和DN / GAE问题争夺了2天了。我使用GAE SDK 1.7.0升级到DN v2,GWT SDK 2.4.0,Eclipse(Indigo)。
我在Service类上运行增强器: 21:24:19,468 DEBUG [DataNucleus.Enhancer] - 增强类“bookit.shared.Service”开始...... 21:24:19,468 INFO [DataNucleus.Enhancer] - 类“bookit.shared.Service”已经增强。 21:24:19,468 DEBUG [DataNucleus.Enhancer] - 完成课程“bookit.shared.Service”已完成
bookit.shared.Service.class没有其他任何副本,就在../WAR/WEB-INF/classes/bookit/shared/Service.class下。确实增强了OK(非增强型大小为7KB,增强型--12KB)。
我启动了我的GWT应用程序,在服务器端我不断得到: org.datanucleus.exceptions.NucleusFatalUserException:没有bookit.shared.Service的元数据。也许你需要在这个类上运行增强器? at org.datanucleus.api.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:498)
我将DN调试模式设置为ON(log4j.category.DataNucleus = DEBUG,A1),但除了上面的消息之外,我没有看到任何有用的内容。
问题:为什么DN没有看到类(bookit.shared.Service)在运行时增强 - 它确实加载它并且实际上是增强的(我通过调试器偷看),但它认为它是在查询编译步骤中没有增强,因为似乎没有加载元数据(我的类使用JDO注释标记为DN目的,而不是元文件)。
(org.datanucleus.exceptions.NucleusFatalUserException:没有bookit.shared.Service的元数据。也许你需要在这个类上运行增强器? 在com.google.appengine.datanucleus.query.DatastoreQuery.compile(DatastoreQuery.java:205))