2012-11-28 27 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访问旧数据并复制到新数据存储区,则可以重新创建所有条目。

再一次,它可能工作,所以只有你必须尝试。