独自のジェネレーターを作成せずに、SerializationStreamWriterをカスタム目的で使用する簡単な方法はありますか?
(たとえば、html5ストレージ)
GWTのjavadocはほとんど何も伝えていません。
独自のジェネレーターを作成せずに、SerializationStreamWriterをカスタム目的で使用する簡単な方法はありますか?
(たとえば、html5ストレージ)
GWTのjavadocはほとんど何も伝えていません。
現在のプロジェクトの実装を作成しています。これは、カスタムオブジェクトを文字列にシリアル化してローカルストレージに保存し、文字列をオブジェクトに逆シリアル化するという、まさにあなたが望むことを実行します。
したがって、私にとっては、シリアル化にSerializationStreamWriterを使用し、CLIENTSIDEでの逆シリアル化にSerializationStreamReaderを使用することが可能です。
これを実現するために、
SerializationStreamWriter / SerializationStreamReaderのジェネレーターは必要ありませんが、TypeSerializer(com.google.gwt.user.client.rpc.impl.SerializerBaseを実装する)のジェネレーターは必要です。そして、これは静かでシンプルです。com.google.gwt.user.rebind.rpc.TypeSerializerCreatorを見て、ジェネレーターで使用してください。または、すべてのカスタムオブジェクトが1つのRPCサービスで参照されている場合は、生成されたrpcサービスのTypeSerializerを使用できます。
また、SerializationStreamWriterまたはSerializationStreamReaderの適切な実装を作成する必要があります。2つのシリアル化された文字列形式(要求使用形式と応答使用形式)があるため:
GWTには、クライアント側のシリアル化/逆シリアル化用のClientSerializationStreamWriter、ClientSerializationStreamReaderがあります。ServerSerializationStreamWriter、サーバー側のシリアル化/逆シリアル化用のServerSerializationStreamReader。
Client SerializationStream WriterはオブジェクトをFORMAT_1にシリアル化し、 Server SerializationStream Readerのみがオブジェクトを読み取ることができます(オブジェクトに逆シリアル化します)。
サーバーSerializationStreamWriterは、オブジェクトをFORMAT_2にシリアル化し、 Client SerializationStream Readerのみがオブジェクトを読み取ることができます(オブジェクトに逆シリアル化します)。
したがって、ClientSerializationStreamWriterを使用してオブジェクトをシリアル化する場合は、クライアント側でServerSerializationStreamReaderの同様の実装を作成する必要があります。または、ClientSerializationStreamWriterを使用して文字列を逆シリアル化する場合は、クライアント側でServerSerializationStreamWriterの同様の実装を記述します。FORMAT_1とFORMAT_2の違いは順序だけなので、これは難しくありません。
いいえ。
GWT-RPCシリアル化は非対称であるため、ローカルストレージには使用できません。サーバーはクライアントが送信したものを理解し、クライアントはサーバーが送信したものを理解しますが、自分が書いたものは理解しません。