2011-08-26 56 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; 
    } 
相關問題