2

RPC 経由で MyClass を送信しようとしていますが、取得しています: Type MyClass was not assignable to 'com.google.gwt.user.client.rpc.IsSerializable' and did not have a custom field serializer.セキュリティ上の理由から、この型シリアル化されません。

私はGWT - 時々 com.google.gwt.user.client.rpc.SerializationExceptionを見て、解決策を試しましたが、うまくいきませんでした。

違いは、MyClass が別のプロジェクトにあることです。プロジェクトの構造は次のとおりです。

MyApiProject
-contains MyClass
MyClientProject
MyServerProject

また、MyApiProject から RPC を介して列挙型を渡そうとしましたが、これも失敗しました。

public class MyClass
    implements Serializable
{
    private static final long serialVersionUID = 5258129039653904120L;

    private String str;

    private MyClass()
    {
    }

    public MyClass(String str)
    {
        this.str = str;
    }

    public String getString()
    {
        return this.str;
    }
}

私が持っているRemoteServiceで:

mypackage.MyClass getMyClass();

私が持っているRemoteServiceAsyncで:

void getMyClass(AsyncCallback<mypackage.MyClass> callback);
4

3 に答える 3

6

implements Serializable を implements IsSerializable に変更する必要がありました

于 2012-04-18T20:35:01.510 に答える
0

これは通常、クラス内でシリアル化できない別のタイプを使用しているときにポップアップします。クラスのプロパティをチェックし、それらがすべてシリアル化可能であることを確認します。ここにMyClassのコードを投稿すると、私もそれを見ることができます。

于 2012-04-17T17:43:17.457 に答える
0

GWT では、引数なしのパブリック コンストラクターも持つために、RPC シリアル化可能なクラスが必要だと思います。

削除してみてください

   private MyClass()
    {
    }

またはそれを設定します

   public MyClass()
    {
    }
于 2012-04-17T22:38:12.677 に答える