¿Cómo se ve el formato de datos de las llamadas RPC de Google Web Toolkits (GWT) y cómo se transmiten los objetos IsSerializable? Sé que Java Serializable transmite algún tipo de formato binario, pero ¿es este el caso también con GWT? (Ya que no espero que sea compatible con JavaScript, o al menos requiera un análisis adicional).GWT Formato de datos RPC
Respuesta
EDIT: Brian Slesinsky simplemente documenta el protocolo (por ingeniería inversa del código): https://docs.google.com/document/d/1eG0YocsYYbNAtivkLtcaiEE5IOF5u4LUol8-LL0TIKU/edit
En primer lugar, el protocolo GWT-RPC es asimétrico de manera que siempre está optimizado para el lado del cliente: rápido deserializar algo que viene del servidor, y rápido para serializar algo para enviarlo.
Obviamente no es binario, como sospechabas, sino basado en texto. el protocolo de cliente a servidor está delimitado por canalización mientras que el servidor por cliente se basa en JSON (con un prefijo //OK
o //EX
para indicar si la solicitud tuvo éxito o no). Ambos usan el conocimiento común de las clases serializables para serializar/deserializar; por ejemplo, ambos lados saben que la clase X tiene dos campos, un entero y una cadena, serializados en ese orden, por lo que ambos escriben/leen un entero, y luego una cadena, sin necesidad de especificar en el formato codificado qué campo es acerca de.
El protocolo GWT-RPC está versionado (cambia regularmente a medida que se lanzan nuevas versiones de GWT) y utiliza hashes de los nombres de las clases y campos serializables para garantizar que tanto el cliente como el servidor usan las mismas versiones de las clases (lo que significa tiene que volver a compilar y volver a implementar su código de cliente cada vez que cambie una clase serializable).
La mejor documentación es el código, pero encontrará una visión general del formato de solicitud en estas diapositivas: https://www.owasp.org/images/7/77/Attacking_Google_Web_Toolkit.ppt
RequestFactory, contrariamente a GWT-RPC, utiliza un protocolo basado en JSON simétrico (basado en de AutoBean Serialización JSON) donde el cliente y el servidor pueden comunicarse incluso cuando no se compilan desde el mismo código (bueno, dependiendo de los cambios que haya realizado entre las versiones, por supuesto), ya que pasan nombres de clases y propiedades.
- 1. GWT - RPC SerializationException
- 2. Diferencia entre gwt, gwt-rpc, ext-gwt, smart gwt
- 3. GWT problema de interfaz RPC
- 4. GWT Cabecera de respuesta RPC
- 5. Seguridad al usar GWT RPC
- 6. ¿Cómo agrupar llamadas gwt-rpc?
- 7. Llamadas RPC síncronas en GWT
- 8. RPC error después de GWT 2.3 actualización
- 9. Anotación de @WebServlet y GWT RPC
- 10. SMARTGWT DataSource (GWT-RPC-DATASource) LISTGRID
- 11. excepción en la aplicación GWT RPC
- 12. Fake a GWT Llamada RPC sincrónica
- 13. ¿Hay un equivalente de Flex de GWT-RPC?
- 14. Envío de instancias JDO persistentes a través de GWT-RPC
- 15. cookie de identificación de sesión en gwt rpc
- 16. ¿Cómo carga GWT RPC los archivos de política de serialización?
- 17. GWT Problema de uso de RPC simple: Código incluido
- 18. Uso de una enumeración anidada en GWT-RPC
- 19. GWT: poblar una página del almacén de datos usando RPC es demasiado lento
- 20. Cómo reenviar una solicitud GWT RPC si falla (o cómo crear una solicitud RPC persistente)?
- 21. Invocar un servicio GWT RPC desde Java directamente
- 22. GWT RPC: ¿hace lo suficiente para proteger contra CSRF?
- 23. - GWT RPC - llegar servlet ruta absoluta para hacer dir
- 24. Ejemplo sencillo para cargar datos en un ListStore Sencha GXT (3.0) usando una llamada GWT RPC?
- 25. XML-RPC C# y Python RPC Server
- 26. ¿Cómo puedo llamar a un método GWT RPC en un servidor desde una aplicación no GWT (pero Java)?
- 27. Utilizando el mecanismo de serialización/deserialización de RPC integrado en GWT
- 28. Especificaciones de descubrimiento de servicios JSON-RPC y Json-rpc
- 29. GWT y WebSocket/Datos push del servidor al cliente GWT
- 30. Cuál es el propósito de la interfaz IsSerializable en GWT (con respecto al mecanismo RPC)
excelente respuesta, ¿entiendes alguna implementación java para GWT_RPCs? – Stefan
Google me cuenta acerca de http://code.google.com/p/gwtphp/ y http://code.google.com/p/python-gwt-rpc/, pero se ven abandonadas (y RequestFactory es el camino a seguir , pero no estoy al tanto de ninguna implementación que no sea Java) –
gracias de nuevo. De acuerdo con esto, cuando quiero hablar con ninguno de los servidores Java, RPC no es el camino a seguir, debería recurrir al protocolo personalizado JSON o XML. – Stefan