GWT RPC接口问题

时间:2011-07-08 07:24:36

标签: gwt rpc

我怀疑下面的代码..

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

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

有没有人可以解释一下@RemoteServiceRelativePath("stockPrices")的用法是什么?我们需要在“stockPrices”中给出什么名称..是强制性的吗?

提前致谢!!!

1 个答案:

答案 0 :(得分: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");