2011-08-26 57 views
0

我刚开始学习GWT和Google App Engine。是好还是坏,我开始做部署到谷歌应用程序引擎的教程是在这里找到:部署到Google App Engine教程增强器例外

http://code.google.com/webtoolkit/doc/latest/tutorial/appengine.html

本教程为基础的RPC教程为在这里找到:

http://code.google.com/webtoolkit/doc/latest/tutorial/RPC.html

我下载了StockWatcher项目并且没有任何问题地完成了RPC教程,然后返回继续执行“部署到Google App Engine”教程。

我使用Eclipse,但我猜是谁做的RPC教程的人也没有,因为我必须按照指示节“设置项目(不使用Eclipse)”

所有一直很好,直到我到教程的最后一步测试应用程序。当我得到该行:

List stocks =(List)q.execute(getUser());

在文件src/com.google.gwt.sample.stockwatcher.server/StockServiceImpl.java中。完整的代码在教程中,所以我不会在这里上传。

的q.execute()语句引发以下异常:

javax.jdo.JDOFatalUserException:为com.google.gwt.sample.stockwatcher.server.Stock没有元数据。也许你需要在这个类上运行增强器? NestedThrowables: org.datanucleus.store.appengine.FatalNucleusUserException:com.google.gwt.sample.stockwatcher.server.Stock没有元数据。也许你需要在这个类上运行增强器?

我尝试了几天而没有取得任何进展。我不明白我如何运行“增强器”,也不知道这意味着什么。这是一个工具的名称,他们只是忘了把专有名词大写为Enhancer?

我怀疑是因为我没有从头开始创建项目,有一些设置在下载RPC项目作为您的出发点时,教程未能提及您需要具备。

虽然我不知道怎么样了“增强”的建议意味着,我没有看到在build.xml中这部分是否有帮助....

name="datanucleusenhancer" 
    classpathref="tools.class.path" 
    classname="org.datanucleus.enhancer.tools.EnhancerTask" /> 
<datanucleusenhancer 
    classpathref="tools.class.path" 
    failonerror="true"> 
    <fileset dir="war/WEB-INF/classes" includes="**/*.class" /> 
</datanucleusenhancer> 

谁能给我一个提示,我做错了什么?谢谢。

没有魅请

回答

0

通过本教程仔细去再之后,我错过了Stock.java以下行:

@PersistenceCapable(identityType = IdentityType.APPLICATION)

这似乎使问题消失了,但我看不出消息是如何有用的。

avax.jdo.JDOFatalUserException:com.google.gwt.sample.stockwatcher.server.Stock没有元数据。也许你需要在这个类上运行增强器? NestedThrowables:org.datanucleus.store.appengine。FatalNucleusUserException:com.google.gwt.sample.stockwatcher.server.Stock没有元数据。也许你需要在这个类上运行增强器?

首先,它建议“运行增强器”,这不是你想要做的,我也不知道如何运行增强器,所以我可以确认这样做不会有帮助。我也没有看到教程中关于这条线如何创建元数据的描述。关于“注意事项”的代码部分没有描述这一点。

+0

我会离开这个让别人确认这是“答案”。 – Mitch

+0

我得到同样的错误...即使我写了@PersistenceCapable ... 仍然有错误... 还有什么可能是错的? – SRK

0

除了上一个答案中提到的班级注释之外,还要确保你的领域有getter和setter。特别是,我没有getId()函数的问题。

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

    public Long getId() { 
    return this.id; 
    } 
相关问题