2011-07-08 97 views
5

我懷疑下面的代碼..GWT RPC接口問題

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

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

可以在任何一個給我解釋一下什麼用的@RemoteServiceRelativePath("stockPrices"),我們需要在「stockPrices」給什麼名字..是否強制要求??

在此先感謝!

回答

8

查看documentation for RemoteServiceRelativePath annotation,它很好地解釋了這個註釋的作用。在你的情況下,你的服務必須位於GWT.getModuleBaseURL() + "stockPrices" ...這意味着如果你的GWT應用程序在/mygwtapp,那麼你的服務必須在/mygwtapp/stockPrices。您需要在這個URL上安裝一些服務,通常通過定義實現服務接口的servlet來實現。

您可以使用任何其他路徑而不是"stockPrices",只要確保服務器上的此路徑背後有真實的服務。

你的遠程服務需要一些遠程路徑(切入點),無論是使用@RemoteServiceRelativePath註釋,或通過ServiceDefTarget interface設置它。如果服務沒有入口點,則不能被調用。 (注意:這個路徑是URL在服務器上),而不是使用@RemoteServiceRelativePath

例如,你可以定義你的服務沒有這個註釋,然後當你實例化異步服務代理,明確設置路徑:

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

是啊,我明白了,謝謝你的迴應! –