2011-08-05 2 views
2

私は約1週間ほどこれを突き刺してきましたが、今は何も見つかりませんでした。 GWT、Hibernate、Gileadを使ってアプリケーションを構築していますが、データベースからLightEntityオブジェクトのリストをロードするrpc呼び出しを試みています。この呼び出しは、私のRPCインタフェースに最小限の変更を加えるまで完全に機能しました。deleteLightEntityメソッドを追加しました。そして、私はこのエラーを受信を開始:GWTシリアル化ポリシーの例外を取得する他の理由がありますか?

Type 'com.blah.shared.DomainObject' was not included in the set of types which can be 
serialized by this SerializationPolicy or its Class object could not be loaded. For 
security purposes, this type will not be serialized." 

...引数なしのコンストラクタを持っていない、あるいは多分SerializableまたはIsSerializableを実装していないオブジェクトの通常の特性です。私のDomainObjectを除いてすべてはそうです。そして、私はこのメソッドをrpcに追加する前に、すべて正常に動作しました。私は追加して再コンパイルするメソッドを削除しようとしましたが、うまくいかないようです。また、生成された.gwt.rpcファイルを手動で削除し、ブラウザのキャッシュをクリアしました。

答えて

2

クラスがSerializable(そしてIsSerializableではなく)を実装している場合は、それが参照されていれば逐次化ポリシーにのみ含まれますRPCインターフェイスでは、それを確認してください。 そのクラスを参照しない理由がある場合は、this workaroundを使用できます。

また、エラーはクラスDomainObject(これはグローバルスーパークラスとみなされます)のため、SerializableまたはIsSerializable(サブクラスに加えて)を実装するようにします。

ソースコードを表示しても役に立ちます。

+0

:)これは非常に参考になりました。つまり、「Serializable」と「IsSerializable」の違いです。私はそれを知らなかった。私がやったことは、すべての私の 'DomainObject'を含むクラスを作成することでした(スーパークラスではなく、ちょうどPOJOである多くの異なるドメインオブジェクトを持っているので、ソースを入れる必要はないと感じましたコード)をフィールドとして使用し、そのクラスに 'Serializable'の代わりに' IsSerializable'を実装させることです。再度、感謝します! – Kris

関連する問題