Guava 14.0 を GWT RPC 2.5.1-rc1 で使用し、Guava ライブラリと GWTで説明されているように Maven でビルド
Guava コレクションの逆シリアル化は正常に機能しているようです。ただし、Optional.Present を含む応答 DTO を逆シリアル化しようとすると、SerializationException が発生しました。
Caused by: com.google.gwt.user.client.rpc.SerializationException: com.google.common.base.Present/3434853995
at com.google.gwt.user.client.rpc.impl.SerializerBase.getTypeHandler(SerializerBase.java:153)
SerializerBase.java:146 を見ると、methodToJava マップには以下が含まれていません。
com.google.common.base.Present/3434853995
ただし、次の CustomFieldSerializer が含まれています。
com.google.common.base.Present/3491224270
では、/3434853995 マッピングはどうなっているでしょうか。
これは、サーバー側の型がクライアント側の型と同じであることを確認するために SerializerBase が使用するハッシュ (コンパイル時に計算される) のようです。guava-gwt とサーバー側の guava Optional.Present を見ると、これらは一致しません。また、Present はサーバー側でインスタンス化されるため、そのハッシュはクライアント側の Present と一致しませんか?