java - App Engine Datanucleus 不会增强抛出 : util. 端点。ListWrapper 具有应用程序身份

标签 java google-app-engine google-cloud-endpoints

我不知道发生了什么,但我的项目突然开始抛出错误:

类 util.endpoints.ListWrapper 具有应用程序标识,并且未指定 objectid-class,但有 0 个主键字段。无法使用 SingleFieldIdentity。

这只是随机开始发生的,我正在运行 1.8.9 并使用端点。我已经清理、重新启动等无济于事,这对我来说似乎是端点的问题。完整的堆栈跟踪是:

DataNucleus Enhancer (version 3.1.1) : Enhancement of classes
Feb 01, 2014 8:06:13 AM org.datanucleus.metadata.AbstractClassMetaData    determineObjectIdClass
 SEVERE: Class util.endpoints.ListWrapper has application-identity and no objectid-class    specified yet has 0 primary key fields. Unable to use SingleFieldIdentity.
Class util.endpoints.ListWrapper has application-identity and no objectid-class specified yet has 0 primary key fields. Unable to use SingleFieldIdentity.
Feb 01, 2014 8:06:13 AM org.datanucleus.enhancer.DataNucleusEnhancer main
 DataNucleus Enhancer completed with an error. Please review the enhancer log for full details. Some classes may have been enhanced but some caused errors
SEVERE: DataNucleus Enhancer completed with an error. Please review the enhancer log for   full details. Some classes may have been enhanced but some caused errors
Class util.endpoints.ListWrapper has application-identity and no objectid-class specified yet has 0 primary key fields. Unable to use SingleFieldIdentity.

org.datanucleus.metadata.InvalidClassMetaDataException:类 util.endpoints.ListWrapper 具有应用程序标识,但尚未指定 objectid-class 有 0 个主键字段。无法使用 SingleFieldIdentity。 在 org.datanucleus.metadata.AbstractClassMetaData.defineObjectIdClass(AbstractClassMetaData.java:1355) 在 org.datanucleus.metadata.ClassMetaData.populate(ClassMetaData.java:209) 在 org.datanucleus.metadata.MetaDataManager$1.run(MetaDataManager.java:2699) 在 java.security.AccessController.doPrivileged( native 方法) 在 org.datanucleus.metadata.MetaDataManager.populateAbstractClassMetaData(MetaDataManager.java:2693) 在 org.datanucleus.metadata.MetaDataManager.populateFileMetaData(MetaDataManager.java:2516) 在 org.datanucleus.metadata.MetaDataManager.initialiseFileMetaDataForUse(MetaDataManager.java:1123) 在 org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:543) 在 org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNucleusEnhancer.java:734) 在org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.java:525) 在 org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:1258) 在 sun.reflect.NativeMethodAccessorImpl.invoke0( native 方法) 在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.lang.reflect.Method.invoke(Method.java:606) 在 com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:74) 位于 com.google.appengine.tools.enhancer.Enhance。(Enhance.java:71) 在 com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:51)

最佳答案

为了解决这个问题,我在 App Engine 下使用 ORM 选项时取消选中了 src 目录。菜单路径是 Google > App Engine > ORM。我将所有数据类都放在一处,因此我只包含此路径,而不是默认的 src 文件夹。结果是 datanucleus 增强器不再在端点类上运行。

我确实认为目前导致此问题的是端点的错误,但希望这可以帮助人们找到解决方法。

关于java - App Engine Datanucleus 不会增强抛出 : util. 端点。ListWrapper 具有应用程序身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21500646/

相关文章:

java - 如何设置安卓锁屏图片

java - 如何使用 context.xml 正确连接到 XAMPP mySQL DB

java - 如何更正平滑移动谷歌地图 v2 中的标记?

google-app-engine - 如何签署来自 python 应用程序引擎的亚马逊网络服务请求?

python - 使用 Google App Engine 上的 SetupTools 动态下载和安装 python 模块

java - 缺少 appengine-api-labs.jar 和其他必需的库

java - 异常 java.lang.ClassNotFoundException : com. google.api.server.spi.EndpointsServlet

android - 冒号编码(:) with Google Cloud Endpoints, Android Studio

java - PostgreSQL日期与Java即时

android - 谷歌验证异常 : Unknown when authenticating with Cloud Endpoints