Проблема интерфейса GWT RPC - PullRequest
5 голосов
/ 08 июля 2011

Я сомневаюсь в приведенном ниже коде.

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

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

Может ли кто-нибудь объяснить мне, как используется @RemoteServiceRelativePath("stockPrices") и какое имя нам нужно дать в "stockPrices" ... это обязательно???

заранее спасибо !!!

1 Ответ

8 голосов
/ 08 июля 2011

Ознакомьтесь с документацией для аннотации RemoteServiceRelativePath , она довольно хорошо объясняет, что делает эта аннотация. В вашем случае ваша служба должна быть расположена на GWT.getModuleBaseURL() + "stockPrices" ... это означает, что если ваше приложение GWT на /mygwtapp, то ваша служба должна быть на /mygwtapp/stockPrices. Вы можете установить какой-либо сервис по этому URL, обычно путем определения сервлета, реализующего интерфейс сервиса.

Вы можете использовать любой другой путь вместо "stockPrices", просто убедитесь, что за этим путем на сервере есть реальная служба.

Для ваших удаленных служб требуется некоторый удаленный путь (точка входа) либо с помощью аннотации @RemoteServiceRelativePath, либо путем установки его через ServiceDefTarget interface . Если служба не имеет точки входа, она не может быть вызвана. (Помните: этот путь является URL на сервере)

Например, вместо использования @RemoteServiceRelativePath вы можете определить свою службу без этой аннотации, а затем, когда вы создаете экземпляр асинхронного прокси службы, вы явно задаете путь:

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