繁体   English   中英

Eclipse Google -App -Engine“不会增强”

[英]Eclipse Google -App -Engine “Will NOT Enhance”

第一个Eclipse:

无法摆脱这个错误...已经尝试了谷歌上的每一个建议的修复..

持久化类“com.blahb.blahblah.master.UserToken类似乎没有得到增强。您可能需要重新运行增强器并检查输出中的错误。” 数据库中没有表,但操作需要它。 请检查此类的MetaData规范。

List of 500 lines of exceptions...
*Caused by:
javax.jdo.JDOUserException: Persistent class "Class com.blahb.blahblah.master.UserToken does not seem to have been enhanced.  You may want to rerun the enhancer and check for errors in the output." has no table in the database, but the operation requires it. Please check the specification of the MetaData for this class.
    at org.datanucleus.jdo.NucleusJDOHelper.getJDOExceptionForNucleusException(NucleusJDOHelper.java:375)
    at org.datanucleus.jdo.JDOQuery.execute(JDOQuery.java:230)
    at com.gulfnet.gulfstar.master.Master.getUserToken(Master.java:645)
    at org.apache.jsp.top_jsp._jspService(top_jsp.java:68)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:94)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:324)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:292)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:236)
    at com.google.appengine.tools.development.PrivilegedJspServlet.access$101(PrivilegedJspServlet*

我的同事在她的Windows PC上有同样的项目,运行良好...

我尝试了三种不同的PC的linux,mac,windows,3种不同的eclipse版本,20种不同的导入方式,创建新项目等等....

是的,更正了.classpath以反映所有jar文件的正确位置。 我已经尝试将其中一个google博客上建议的每个单独的类java,jar添加到类/ buildpath(window - > pref - > google - > orm)中没有...

这个该死的“Enhancer控制台”在哪里,假设是在Eclipse ......? 我正在使用所有Google-app-engine插件运行最新的Eclipse ..

有任何想法吗...? 任何人..?

谢谢!

问题是,DataNucleus的Enhancer将从项目的Builders列表中删除。 对我来说,所有项目清洁,重建等都没有帮助。 你需要做的是(1)创建新的样本GAE项目,在纯文本编辑器中打开该项目的“.project”文件,从那里复制这个文本:

<buildCommand>
    <name>com.google.appengine.eclipse.core.enhancerbuilder</name>
    <arguments></arguments>
</buildCommand>

现在将其复制到您自己的.project文件中的构建器列表的底部。 现在DataNucleus应该可以正常工作。 我不知道为什么它有时会消失。

右键单击项目,然后单击Properties> Builders。 有没有像“Missing Builder(org.datanucleus.ide.eclipse.enhancerbuilder)”这样的观点?

如果您创建了一个新的Web应用程序项目,请确保选中“使用Google Web Toolkit”和“使用Google App Engine”,然后在“属性”>“构建器”中再次查看,然后在那里说“Enhancer”而不是“Missing builder” “?

如果是,那么确定的解决方案是从头开始创建一个新项目,然后手动将旧项目中的内容转移到新项目中。 简单地将旧项目导入另一个Eclipse不起作用,增强器仍然不存在。

更新到最新版本的appengine java sdk为我解决了这个问题。

更改SDK版本对我有用。

有趣的是,我已经在使用最新版本了。 恢复到以前的版本是我触发“增强”步骤的唯一方法。 这是一个gradle构建脚本。

我们编辑了[Project> properties> Google> App Engine> ORM]页面来删除src /并且只增强了我们类的子集( src / com / vo / .java *, src / com / back /?res / )如下所述: datanucleus enhancer&javaw:“参数不正确”

我们还将Google | App Engine复制到较短的路径,如下所述: http//code.google.com/p/google-web-toolkit/issues/detail?id = 4395#c15

我有同样的错误,在我的情况下解决方案只是通过评论这一行使类不持久:

@PersistenceCapable(identityType = IdentityType.APPLICATION)

然后运行我的应用程序并获得有关持久性的错误,停止它,取消注释前一行并再次运行应用程序。

通过添加主键解决了这个问题,如下所示:

@PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Long id;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM