2009-08-25 12 views
8

¿Existe alguna manera fácil de invocar un punto final del servicio RPC GWT directamente desde el código Java? Me refiero al código real de Java, no al código de Java compilado en javascript.Invocar un servicio GWT RPC desde Java directamente

Lo pido porque queremos ejecutar pruebas comparativas de desempeño/estrés contra una interfaz GWT RPC. Me gustaría escribir el arnés de prueba en Java y ejecutarlo en una JVM (a diferencia de javascript que se ejecuta en un navegador).

Me imagino que debe haber una manera de hacerlo porque supongo que el modo GWT Hosted requiere tal funcionalidad. Sin embargo, no puedo encontrar ningún código en el tiempo de ejecución de GWT que demuestre cómo hacerlo limpiamente. He examinado el paquete com.google.gwt.user.client.rpc, pero parece que las cosas allí utilizadas usan JSNI, lo que obviamente no sería utilizable por Java puro.

Respuesta

10

GWT SyncProxy le permite acceder a los servicios GWT RPC (por ejemplo, métodos) a partir del código Java puro (no JSNI). Por lo tanto, puede usarlo para probar su interfaz RPC.

Ver http://www.gdevelop.com/w/blog/2010/01/10/testing-gwt-rpc-services/ para más detalles.

+0

¿Funcionaría este mecanismo para un sistema de producción? Por ejemplo, ¿podría usarlo para proporcionar una API Java del lado del cliente a mis clientes? – HDave

+0

Sí, claro. Sin embargo, para el acceso de terceros, debe/debe implementar Access Control en el lado del servidor – Trung

+1

Dado que la URL anterior parece estar muerta, consulte el sitio del Código de Google del proyecto: https://code.google.com/p/gwt -syncproxy/ – JCricket

0

Puede usar una herramienta de prueba de carga convencional como Grinder para reproducir solicitudes de publicaciones a su servicio. Eso no es exactamente lo que está preguntando, pero puede ser una mejor manera de realizar pruebas de carga en su aplicación. Grinder puede simular muchos usuarios simultáneos, etc.

1

¿Está tratando de comparar la lógica de negocios del servicio, o qué tan bien realiza GWT-RPC? Si usted es mayormente preocupado por el nivel de desempeño de su código de fondo, sólo podría crear una instancia de la clase que implementa el servicio directamente:

MyServiceImpl impl = new MyServiceImpl(); 
impl.doSomething(); 

Si desea probar una mayor porción de la pila, incluyendo las llamadas RPC, tomar una apariencia here. Hay una sección llamada "ejecutar su prueba en modo web" que tiene la siguiente línea: 'Por defecto, las pruebas que se ejecutan en modo alojado se ejecutan como bytecode de Java normal en una JVM'. Entonces, si usa la configuración descrita, creo que obtiene sus pruebas para ejecutarse en Java de manera predeterminada. También en esa página hay información sobre las herramientas de creación de perfiles de GWT.

+0

Quiero probar GWT-RPC y el mecanismo de despacho personalizado que hemos integrado en nuestro servidor. Preferiría no tener que usar todos los andamios que impone la infraestructura de prueba de GWT, pero veré las herramientas integradas de prueba de GWT a las que hace referencia. ¡Gracias! – Eric

Cuestiones relacionadas