2012-11-28 31 views
4

我剛剛更新了Java SDK GAE對1.7.3,現在我得到異常,試圖從我的本地數據存儲,讀取時:GAE 1.7.3更新 - > java.io.InvalidClassException

INFO: Failed to load from the backing store, 
C:\Users\<user>\Documents\myproject\war\WEB-INF\appengine-generated\local_db.bin 
java.io.InvalidClassException: 
com.google.appengine.repackaged.com.google.io.protocol.ProtocolMessage; 
local class incompatible: 
    stream classdesc serialVersionUID = 2691625986599730786, 
    local class serialVersionUID = -3428150205257072157 
at java.io.ObjectStreamClass.initNonProxy(Unknown Source) 
at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source) 
at java.io.ObjectInputStream.readClassDesc(Unknown Source) 

防止我從現有的本地數據存儲中讀取實體。 如果我降級到1.7.2它再次運作,但我想運行最新版本。

有誰知道如何解決這個問題?謝謝。

回答

2

如果我理解正確的,你已經創建使用開發Web應用程序服務器的版本1.7.2本地數據存儲,並試圖用使用1.7.3版這個相同的數據(文件)。

的開發應用服務器的新版本容易,但不能保證,是無法讀取的數據與堅持早期版本。

我發現,存儲與1.7.2開發的應用服務器的數據不能與1.7.3一起使用,所以這個時候我們都是不幸的。

在這種情況下,您將不得不使用1.7.3重新創建數據。

+0

如果你是正確的,那對活服務器來說意味着什麼?我會在那裏遇到同樣的問題嗎? – ghost23

+0

。不同版本的開發應用程序服務器之間可能的數據存儲文件不兼容與實時系統無關。這只是開發應用服務器的一個怪癖。 –

0

我認爲有可能找回你的數據,但需要一些工作。如果我們在兩個本地應用程序服務器上運行項目:一個使用SDK 1.7.2,另一個使用較新的SDK,然後使用遠程API訪問舊數據並複製到新數據存儲區,則可以重新創建所有條目。

再一次,它可能工作,所以只有你必須嘗試。