我刚刚将Java GAE SDK更新为1.7.3,现在我尝试从本地数据存储区读取时遇到异常:
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它再次运行,但我想运行最新版本。
任何人都知道如何解决这个问题?谢谢。
答案 0 :(得分:2)
如果我已正确理解您,您已使用开发Web应用程序服务器的1.7.2版创建了本地数据存储,并尝试使用1.7.3版本使用相同的数据(文件)。
较新版本的dev app服务器有责任但无法保证无法读取早期版本中保留的数据。
我发现使用1.7.2 dev app服务器存储的数据不能与1.7.3一起使用,所以这次我们都不走运。
在这种情况下,您必须使用1.7.3重新创建数据。
答案 1 :(得分:0)
我认为可能会收回您的数据但需要一些工作。如果我们在本地的两个应用程序服务器上运行您的项目:一个使用SDK 1.7.2,另一个使用较新的SDK,则使用远程api访问旧数据并复制到新数据存储,您可以重新创建所有条目。
同样,它可能有效,所以只有你必须尝试。