2011-07-08 14 views
5

mam wątpliwości na poniższym kodzie ..interfejs GWT RPC problem

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

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

mógłby ktoś wytłumaczyć mi, co jest wykorzystanie @RemoteServiceRelativePath("stockPrices") i co nazwa musimy dać w „stockPrices” .. jest to obowiązkowe ??

z góry dzięki !!!

Odpowiedz

8

Zapoznaj się z documentation for RemoteServiceRelativePath annotation, bardzo dobrze wyjaśnia to, co robi ta adnotacja. W twoim przypadku Twoja usługa musi znajdować się pod adresem GWT.getModuleBaseURL() + "stockPrices" ... oznacza to, że jeśli Twoja aplikacja GWT ma numer /mygwtapp, Twoja usługa musi mieć numer /mygwtapp/stockPrices. To zależy od Ciebie, aby zainstalować usługę pod tym adresem URL, zwykle poprzez zdefiniowanie serwletu implementującego interfejs usługi.

Możesz użyć dowolnej innej ścieżki zamiast "stockPrices", upewnij się, że za tą ścieżką na serwerze znajduje się prawdziwa usługa.

zdalnej usługi muszą trochę zdalnego ścieżki (punkt wejścia), albo za pomocą @RemoteServiceRelativePath adnotacji lub ustawiając go przez ServiceDefTarget interface. Jeśli usługa nie ma punktu wejścia, nie można jej wywołać. (Pamiętaj: ta ścieżka jest URL na serwerze)

Na przykład, zamiast korzystania @RemoteServiceRelativePath można zdefiniować swoją usługę bez tej adnotacji, a następnie, jeśli instancję serwera proxy usługi asynchroniczny, jawnie ustawiona ścieżka:

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

Tak, zrozumiałem, dzięki za odpowiedź !!! –