我想要產生以下行爲:GWT Atmosphere + RequestFactory
瀏覽器中的用戶保存一些實體。在實體保存在服務器端後,它會生成通知,並且必須通過Atmosphere以更新的實體實例的方式通知所有其他客戶端。
所以問題是我怎麼能通過大氣界面推POJO實體? 最後一個支持Serializable類型通過線傳輸,而RequestFactory有另一個序列化機制。
所以我需要將POJO實體轉換爲autobean,因爲這是通過RF完成的併發送給客戶端。任何人都知道如何做到這一點?
我想要產生以下行爲:GWT Atmosphere + RequestFactory
瀏覽器中的用戶保存一些實體。在實體保存在服務器端後,它會生成通知,並且必須通過Atmosphere以更新的實體實例的方式通知所有其他客戶端。
所以問題是我怎麼能通過大氣界面推POJO實體? 最後一個支持Serializable類型通過線傳輸,而RequestFactory有另一個序列化機制。
所以我需要將POJO實體轉換爲autobean,因爲這是通過RF完成的併發送給客戶端。任何人都知道如何做到這一點?
您可以使用create AutoBeans並在您的客戶端代碼中使用它們代替POJO。 AutoBeans可以很容易地在GWT中從JSON序列化到JSON並且可以傳輸JSON。 這就是我在我的基於網絡套接字的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
你能寫幾串代碼如何在服務器端創建autobean嗎?這就是我要找的! – 2012-03-27 07:30:38
請參閱我的編輯答案例如代碼 – Andrejs 2012-03-27 08:02:28
謝謝!你知道AutoBean中是否有嵌入式機制將所有屬性複製到autobean?你使用反射嗎? – 2012-03-27 08:06:35
爲什麼你需要使用RequestFactory? – Andrejs 2012-03-26 16:04:18
由於許多來源的建議) – 2012-03-27 07:25:53