1

すべてのライブラリをアップグレードして、この問題が発生し始めたばかりです。

GWT 2.4、App Engine 1.6.3、Objectify 3.0 を使用していました。

GWT 2.5、App Engine 1.7.4、Objectify 4.0b1 にアップグレードしました。

それ以来、インターネット全体で他に 1 人しかいないように見えるこの奇妙なエラーが発生しています。

スタックトレース:

Caused by: com.google.gwt.user.client.rpc.SerializationException: com.google.appengine.api.datastore.Key/1349195865
    at com.google.gwt.user.client.rpc.impl.SerializerBase.getTypeHandler(SerializerBase.java:153)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.instantiate(SerializerBase.java:114)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:396)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.googlecode.objectify.Key_FieldSerializer.deserialize(Key_FieldSerializer.java:11)
    at com.googlecode.objectify.Key_FieldSerializer.deserial(Key_FieldSerializer.java:29)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.deserialize(SerializerBase.java:95)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:398)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.deserialize(Collection_CustomFieldSerializerBase.java:34)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.deserialize(ArrayList_CustomFieldSerializer.java:34)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_FieldSerializer.deserial(ArrayList_FieldSerializer.java:19)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.deserialize(SerializerBase.java:95)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:398)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.utilitiessavings.testapp2.shared.Account_FieldSerializer.deserialize(Account_FieldSerializer.java:29)
    at com.utilitiessavings.testapp2.shared.Account_FieldSerializer.deserial(Account_FieldSerializer.java:51)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.deserialize(SerializerBase.java:95)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:398)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.google.gwt.user.client.rpc.core.java.util.Collection_CustomFieldSerializerBase.deserialize(Collection_CustomFieldSerializerBase.java:34)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_CustomFieldSerializer.deserialize(ArrayList_CustomFieldSerializer.java:34)
    at com.google.gwt.user.client.rpc.core.java.util.ArrayList_FieldSerializer.deserial(ArrayList_FieldSerializer.java:19)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.deserialize(SerializerBase.java:95)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:398)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.utilitiessavings.testapp2.client.action.GetAccountsResult_FieldSerializer.deserialize(GetAccountsResult_FieldSerializer.java:20)
    at com.utilitiessavings.testapp2.client.action.GetAccountsResult_FieldSerializer.deserial(GetAccountsResult_FieldSerializer.java:38)
    at com.google.gwt.user.client.rpc.impl.SerializerBase.deserialize(SerializerBase.java:95)
    at com.google.gwt.user.client.rpc.impl.ClientSerializationStreamReader.deserialize(ClientSerializationStreamReader.java:398)
    at com.google.gwt.user.client.rpc.impl.AbstractSerializationStreamReader.readObject(AbstractSerializationStreamReader.java:119)
    at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter$ResponseReader$8.read(RequestCallbackAdapter.java:106)
    at com.google.gwt.user.client.rpc.impl.RequestCallbackAdapter.onResponseReceived(RequestCallbackAdapter.java:214)
    ... 27 more

この問題は、アカウントにネイティブデータストア キーをラップする Objectifyキーが含まれているため、アカウントをデシリアライズするときに発生します。

シリアル化は正常に機能し、オブジェクト グラフはデータストアですべて正常に動作します。キーを含むものは何も取得できません。これはほとんどすべての有用な機能です。

任意のポインタをいただければ幸いです。

4

1 に答える 1

0

これと同じ問題が発生しましたが、オブジェクトをサーバーに送信して取得しようとしたときに、まだ逆シリアル化エラーが発生したため、データストアとは何の関係もないようです。

AsyncCallService{

void createUser(User user, AsyncCallback<User> user);
}

ServiceImpl{

User createUser(User user){

DB.save(user);

return user

}

そして、これはまだクライアントでシリアル化エラーまたは逆シリアル化エラーを引き起こしています。

私がやったことは、新しいユーザーを返すだけでした。

User createUser(User user){
DB.save(user);
User newUser = new User();

newUser.setId(user.getId())

return newUser;

}

逆シリアル化が不要な古いアプリ エンジン スタックの「利点」の一部を失ったことを除いて、問題は解決しました。

于 2013-02-09T19:59:29.800 に答える