2010-04-13 15 views
10

Ho un modulo GWT con X-GWT-Module-Base http://host:8080/foo/ e vorrei chiamare un servizio (GWT) che si trova a http://host:8080/bar/. Il motivo è, ad esempio, che voglio essere in grado di condividere un servizio GWT tra due diversi progetti client GWT.Chiamare un servizio GWT in un contesto diverso rispetto alla base del modulo GWT?

Tutto quello che ho ottenuto fino ad ora è se il servizio si trova all'interno del contesto del modulo, ovvero http://host:8080/foo/bar funziona correttamente, utilizzando @RemoteServiceRelativePath("bar") nell'interfaccia di servizio.

Sembra che lo @RemoteServiceRelativePath consenta solo un valore relativo all'URL del modulo base ... quindi esiste un altro modo per ottenere ciò che sto cercando di realizzare?

risposta

14

finito per trovare la risposta me right here:

il problema sembra a causa del RemoteServiceRelativePath come si notato che dice relativepath, un modo per risolvere che è quello di utilizzare

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

o usa la potenza del percorso relativo (è così che lo faccio, perché sono pigro)

@RemoteServiceRelativePath("../servX") 

che invece di/MODB/servX o/modA/servX diventerà/servX non importa quale modulo lo chiama anche è necessario apportare le modifiche appropriate in web.xml in modo che il

+0

Puoi spuntarti come risposta. +1 da me. – mgiuca

+0

Aggiungo semplicemente che 'gwtService' qui è il nome dell'oggetto servizio asincrono che si è ricevuto da GWT.create, e dovresti chiamare setServiceEntryPoint subito dopo aver chiamato GWT.create. Questa è una soluzione così frustrante ... rende la vita abbastanza difficile per i progetti del cliente (preferirei racchiudere i dettagli dell'URL nella libreria). Oh bene. – mgiuca