我用servlet編寫了一個Web應用程序,並使用數據存儲區和命名空間apis。GAE應用程序在本地工作,而不是在appengine上(遠程複製)
這對我的本地主機很好用,但從不將數據存儲在已部署的副本上。
我遵循多租戶Java文檔,以及另一個參考,以便我可以讀取XML並將其存儲在BigTable中。
使類持久化:
`@PersistenceCapable(identityType = IdentityType.APPLICATION)
public class Layout {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
private Key key;
private String id;'
Store中的數據:
`customerKey = KeyFactory.createKey(Layout.class.getSimpleName(), layout.getId());
layout.setKey(customerKey);`
現在讓它持續...
`pm = XMLImportPersistenceManagerFactory.get().getPersistenceManager();
SAXParser saxParser = factory.newSAXParser();
saxParser.parse(new InputSource(_URL_STRINGS), this);`
然後關閉它...
pm.close()
該代碼在我的本地主機中運行得非常漂亮。它不起作用,我可以在appengine上看到。該servlet運行,但沒有數據存儲。
如果你點擊了網址,它會顯示佈局創建,我會在日誌中看到200,但沒有數據。這告訴我這個servlet正在運行。 這是我的應用程序:http://layoutimporter.appspot.com/CreateLayout?namespace=boston
一些關閉細節。我編寫了一個名稱空間過濾器,以根據查詢字符串中的參數設置名稱空間。
我正在熱身的servlet並初始化一個PersistenceManagerFactory,以避免加載請求= 1
在這一個任何想法。我已經耗盡了我的資源,並在與「哎呀,我找不到你的種類......」等相關的所有相同線程中進行假脫機。
我嘗試刪除已部署的副本並啓動新的已部署副本。我試着重新部署已部署的副本。沒有快樂。當我在本地副本上進行保存時,我可以out.print命名空間和數據,但在遠程副本上永遠不會。這是一個真正的擊球手!
謝謝!
.. \溫迪
這也是我如何做makePersistentAll(在saxParser.parse行之後... pm.makePersistentAll(layouts); – user1076384 2013-04-23 21:15:28