我想創建一個應用程序來保存和檢索記錄到GAE服務器。我按照教程「部署到Google App Engine」http://code.google.com/webtoolkit/doc/latest/tutorial/appengine.html開始。GWT + GAE數據存儲密鑰和文本Java錯誤
我現在有了StockWatcher應用程序,但在我的應用程序中,我需要存儲一個可以很大(> 10KB)的字符串。我讀過我不能使用Java String類型來存儲大型字符串,而是需要使用Text數據類型。
我認爲通過文本,他們的意思是:com.google.appengine.api.datastore.Text,但它很高興確認這是正確的。 ???
無論如何,我無法讓文本正常工作。經過一番研究之後,似乎Key和Text只能在服務器代碼中使用,而不能在客戶端代碼中使用。看起來這是因爲源代碼不適用於這些類,而GWT需要源代碼在客戶端計算機上創建JavaScript代碼。至少,我目前的工作假設,爲什麼我收到以下錯誤:
21:52:52.823 [ERROR] [myapp] Line 15: The import com.google.appengine.api.datastore cannot be resolved
21:52:52.951 [ERROR] [myapp] Line 103: Key cannot be resolved to a type
21:52:53.011 [ERROR] [myapp] Line 106: Text cannot be resolved to a type
我的共享文件夾使用以下字段中的一類。
共享/ MyDataRecord
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key id;
@Persistent
private Text description;
MyDataRecord類中的共享文件夾,因爲我想用在一個GET方法的返回而不是多個單獨的現場get方法發回的所有字段。以下是我在我的服務器使用MyDataRecord類/ DataServiceImpl.java類
public class DataServiceImpl extends RemoteServiceServlet implements DataService
{
...
@Override
public MyDataRecord getDataRecord() throws NotLoggedInException
{
...
我見過使用非標準,第三方庫,像http://www.resmarksystems.com/code/一些發佈的解決方案建議。我無法安裝這個,但即使我可以,我更喜歡不同的解決方案。存儲文本必須是這樣一個常見的任務,我寧願使用被認爲是標準解決方案來解決這個問題。
我可以改變我的代碼,在多個get方法中返回每個字段,而不是返回一個MyDataRecord實例。但是,即使這種方法有效,隨着時間的推移,這將會顯着增加工作量並且難以維持。但是,如果這是通常所期望的,那麼這就是我要做的。
我想用GWT和GAE的最佳實踐來解決這個問題。一個簡單的例子或教程會走很長的路,但我找不到一個。
是否有示例程序/教程,顯示GWT認爲存儲和檢索大型字符串的最佳實踐?
我是一個GWT和GAE(以及網絡開發)的新手,請考慮在任何迴應,謝謝。
沒有蛇鯊請
一個例子就是回答這個問題的最簡單的方法。 – Mitch