Как отправить объекты JavaScript GWT через RPC?

У меня есть несколько объектов JavaScript API Карт GWT (LatLng, Polyline), которые я хочу отправить между клиентом и сервером с помощью RPC, но поскольку они не сериализуемы, я не могу их использовать. В настоящее время у меня есть Pojos для связи RPC, и я отражаю их в их близнецах JavaScriptObject на стороне клиента ...

Есть ли способ отправить эти объекты? У меня такое чувство, что я что-то упускаю из-за того, как мне это делать.


person Croo    schedule 01.04.2012    source источник


Ответы (1)


JavaScriptObject не являются настоящими объектами Java, поэтому, хотя они работают в режиме разработки и скомпилированы в JavaScript, они не могут работать в стандартной JVM, не подключенной к браузеру. Так что нет, вы не можете отправить JSO на сервер через RPC. Стандартная JVM даже не сможет загрузить класс, поскольку JSO будет иметь native методов, а JVM не будет иметь надлежащих реализаций этих методов.

Если вы можете управлять JSO, вы можете сделать так, чтобы и он, и ваш POJO реализовывали общий интерфейс. Что касается API Карт, вы, вероятно, не контролируете его - можно было бы сериализовать объекты в строки JSON и просто отправить их на сервер. Если затем серверу необходимо прочитать данные, вы можете использовать Gson, Jackson, json.org и т. Д. Для чтения данных в этих строках JSON.

person Colin Alworth    schedule 01.04.2012
comment
Я понимаю. Я знал, что это не java-классы, которые может загружать JVM, но я не знал, как элегантно решить эту проблему. Возможно, разговор в JSON - лучший подход. Спасибо! - person Croo; 01.04.2012