2011-07-08 60 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

是啊,我明白了,谢谢你的回应! –