2012-04-01 28 views
1

我有幾個GWT Maps API JavaScriptObjects(LatLng,Polyline),我想在RPC與客戶端和服務器之間發送,但因爲它們不可序列化,所以我不能使用它們。目前我有用於RPC通信的Pojos,並將它們鏡像到它們在客戶端的JavaScriptObject雙胞胎中...如何通過RPC發送GWT JavaScriptObjects?

有什麼辦法通過發送這些對象嗎?我有這樣的感覺,我錯過了一些關於我該如何做的事情。

回答

1

JavaScriptObject s不是真正的Java對象,所以雖然它們在開發模式下工作,並且編譯爲JavaScript時,但它們無法在標準JVM中工作,而無法連接到瀏覽器。所以不,你不能通過RPC發送JSO到服務器。一個標準的JVM甚至不能加載這個類,因爲JSO將有native方法,並且JVM將沒有這些方法的正確實現。

如果你可以控制JSO,你可以讓它和你的POJO實現一個通用接口。對於Maps API,您可能不會控制它 - 一個想法可能是將對象序列化爲JSON字符串並將其發送到服務器。如果服務器需要讀取數據,則可以使用Gson,Jackson,json.org等讀取這些JSON字符串中的數據。

+0

我明白了。我知道他們不是JVM可以加載的Java類,但我不知道如何優雅地解決這個問題。也許用JSON說話是最好的方法。謝謝! – Croo 2012-04-01 17:49:58