2010-04-13 14 views
10

Tengo un módulo GWT con el X-GWT-Module-Base http://host:8080/foo/ y me gustaría llamar a un servicio (GWT) que se encuentra en http://host:8080/bar/. El motivo es, por ejemplo, que quiero poder compartir un servicio GWT entre dos proyectos diferentes de clientes GWT.¿Llamar a un servicio GWT en un contexto diferente al GWT Module Base?

Todo lo que he llegado a trabajar hasta ahora es si el servicio se encuentra dentro del contexto del módulo, es decir, http://host:8080/foo/bar funciona bien, usando @RemoteServiceRelativePath("bar") en mi interfaz de servicio.

Parece que el @RemoteServiceRelativePath solo permite un valor relativo al URL base del módulo ... ¿hay alguna otra manera de lograr lo que intento lograr?

Respuesta

14

terminamos encontrar la respuesta a mí mismo right here:

aparece el problema debido a la RemoteServiceRelativePath a medida que notado que dice relativepath, una forma de solucionar esto es utilizar

((ServiceDefTarget)gwtService).setServiceEntryPoint("/some/absolute/path"); 

o utilizar el poder de la ruta relativa (así es como lo hago, porque soy perezosa)

@RemoteServiceRelativePath("../servX") 

que en lugar de/ModB/o servX/Moda/servX se convertirá/servX sin importar lo módulo lo llama también tendrá que hacer los cambios adecuados en web.xml para que el

+0

Puede marcarse como la respuesta. +1 de mi parte – mgiuca

+0

Acabo de agregar que 'gwtService' aquí es el nombre del objeto de servicio asincrónico que obtuvo de GWT.create, y debe llamar a setServiceEntryPoint justo después de llamar a GWT.create. Esta es una solución tan frustrante ... hace la vida bastante difícil para los proyectos del cliente (prefiero resumir los detalles de la URL en la biblioteca). Oh bien. – mgiuca