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 アプリ サーバーで保存されたデータは 1.7.3 では使用できないことがわかったので、今回は両方とも運が悪いです。

この場合、1.7.3 を使用してデータを新たに作成する必要があります。

于 2012-11-29T09:27:56.890 に答える
0

データを取り戻すことは可能かもしれませんが、いくつかの作業が必要です。ローカルの 2 つのアプリケーション サーバー (SDK 1.7.2 を使用するサーバーと新しい SDK を使用するサーバー) でプロジェクトを実行し、リモート API を使用して古いデータにアクセスし、新しいデータストアにコピーすると、すべてのエントリを再作成できます。

繰り返しますが、うまくいくかもしれませんので、必要な場合にのみ試してください。

于 2013-09-18T18:28:48.623 に答える