2011-07-08 3 views
5

Je doute sur le code ci-dessous ..GWT problème d'interface RPC

@RemoteServiceRelativePath("stockPrices") 
public interface StockPriceService extends RemoteService { 

    StockPrice[] getPrices(String[] symbols); 
} 

Quelqu'un pourrait-il me expliquer ce qui est l'utilisation de @RemoteServiceRelativePath("stockPrices") et ce nom que nous devons donner dans « stockPrices » .. est obligatoire ??

merci d'avance !!!

Répondre

8

Découvrez documentation for RemoteServiceRelativePath annotation, cela explique assez bien ce que fait cette annotation. Dans votre cas, votre service doit être situé au GWT.getModuleBaseURL() + "stockPrices" ... cela signifie que si votre application GWT est au /mygwtapp, alors votre service doit être au /mygwtapp/stockPrices. C'est à vous d'installer un service à cette URL, généralement en définissant une servlet implémentant l'interface de service.

Vous pouvez utiliser n'importe quel autre chemin au lieu de "stockPrices", assurez-vous simplement qu'il existe un service réel derrière ce chemin sur le serveur.

Vos services à distance ont besoin certains chemin distant (point d'entrée), soit en utilisant l'annotation @RemoteServiceRelativePath, ou en le plaçant par ServiceDefTarget interface. Si le service n'a pas de point d'entrée, il ne peut pas être appelé. (Rappelez-vous: ce chemin est URL sur le serveur)

Par exemple, au lieu d'utiliser @RemoteServiceRelativePath, vous pouvez définir votre service sans cette annotation, puis lorsque vous instancier proxy de service async, vous chemin défini explicitement:

StockPriceServiceAsync stockService = GWT.create(StockPriceService.class); 
((ServiceDefTarget) stockService).setServiceEntryPoint("/services/stock.service"); 
+0

Oui, j'ai compris, merci pour votre réponse !!! –