3

次の動作を生成したいと思います。

ブラウザのユーザーがエンティティを保存します。エンティティがサーバー側に保存されると、通知が生成され、エンティティ インスタンスが更新された Atmosphere を使用して、他のすべてのクライアントに通知する必要があります。

問題は、Atmosphere インターフェイスを介して POJO エンティティをプッシュする方法です。最後の 1 つは Serializable 型をサポートしてワイヤー経由で転送しますが、RequestFactory には別のシリアライゼーション メカニズムがあります。

そのため、POJO エンティティを autobean に変換する必要があります。これは RF によって行われ、クライアントに送信されます。どうすればできるか知っている人はいますか?

4

1 に答える 1

7

Create AutoBeansを使用して、クライアントコードでPOJOの代わりに使用できます。AutoBeansはGWTでJSONとの間で簡単にシリアル化でき、JSONを転送できます。それが私のWebソケットベースのGWTアプリで行っていることです。

サーバーでは、クライアントで使用するのと同じAutoBeanファクトリを作成できます。GWT.createの代わりに、AutoBeanFactorySourceを使用します。

MyDataFactory factory = AutoBeanFactorySource.create(MyDataFactory.class)
AutoBean<MyData> myDataAutoBean = factory.myData();
MyData data = myDataAutoBean.as();
data.setValue(1); // call all kinds of setters

// to converto AutoBean to JSON
String json = AutoBeanCodex.encode(myDataAutoBean).getPayload();

クライアント側では、AutoBeanCodexを使用してjsonをAutoBeanにデコードします

于 2012-03-26T16:00:57.880 に答える