GWT: вызов службы RPC внутри другого модуля - PullRequest
2 голосов
/ 12 марта 2011

У меня есть модуль B, который наследует модуль A. Когда я вызываю RPC Services из A внутри A, они работают нормально. Но когда я вызываю сервисы из A в B, вызовы RPC всегда терпят неудачу. Я что-то упустил?

Заранее спасибо за любую помощь.

Ответы [ 2 ]

3 голосов
/ 13 марта 2011

Я нашел ответ на свой вопрос здесь: http://blog.cloudglow.com/2010/03/making-gwt-rpc-endpoint-independent-of.html

Конечной точкой службы GWT RPC (сервлета) по умолчанию является @RemoteServiceRelativePath ("some_name"), которая разрешается в / module_base / some_name во время выполнения на клиенте. Проблема с этим подходом заключается в том, что ваша конечная точка RPC теперь связана с модулем GWT. Хотя это может быть хорошо для некоторых случаев, это было не для нашей ситуации. Отсюда и этот пост.

В итоге мы создали класс фабрики служб RPC, который будет создавать статический экземпляр конечной точки службы, а также заполнять его правильной конечной точкой; как то так:

public class ServicesFactory
{
public static final RPCServiceAsync RPCService = GWT.create(RPCService.class);

static
{
((ServiceDefTarget) RPCService).setServiceEntryPoint(GWT.getHostPageBaseURL() + RPCService.END_POINT);
}
}
0 голосов
/ 30 ноября 2013

Есть еще один способ ее решения.Просто добавив новое отображение сервлета для каждого нового метода.

<servlet-mapping>
    <servlet-name>serverName</servlet-name>
    <url-pattern>/Module1</url-pattern>
</servlet-mapping>
<servlet-mapping>
    <servlet-name>serverName</servlet-name>
    <url-pattern>/Module2</url-pattern>
</servlet-mapping>
...