4

我刚刚将 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,它会再次运行,但我想使用最新版本运行。

有谁知道如何解决这个问题?谢谢你。

4

2 回答 2

2

如果我对您的理解正确,您已经使用开发 Web 应用程序服务器的 1.7.2 版本创建了一个本地数据存储,并尝试使用 1.7.3 版本使用相同的数据(文件)。

较新版本的开发应用服务器有责任但不能保证无法读取使用较早版本保存的数据。

我发现用1.7.2 dev app server存储的数据不能用在1.7.3上,所以这次我们都倒霉了。

在这种情况下,您必须使用 1.7.3 重新创建数据。

于 2012-11-29T09:27:56.890 回答
0

我认为有可能取回您的数据,但需要一些工作。如果我们在本地的两台应用服务器上运行您的项目:一台使用 SDK 1.7.2,另一台使用较新的 SDK,然后使用远程 api 访问旧数据并复制到新数据存储,您可以重新创建所有条目。

同样,它可能会起作用,所以只有你必须尝试它。

于 2013-09-18T18:28:48.623 回答