2010-04-13 2 views
10

У меня есть модуль GWT с базой X-GWT-Module http://host:8080/foo/ и хотел бы позвонить в службу (GWT), которая находится по адресу http://host:8080/bar/. Причина в том, что я хочу иметь возможность разделить услугу GWT между двумя разными клиентскими проектами GWT.Вызов службы GWT в другом контексте, кроме базы модулей GWT?

Все, что я до сих пор работаю, это если служба находится в контексте модуля, то есть http://host:8080/foo/bar работает нормально, используя @RemoteServiceRelativePath("bar") в моем сервисном интерфейсе.

Кажется, что @RemoteServiceRelativePath допускает только значение относительно базового URL модуля ... так есть ли другой способ выполнить то, что я пытаюсь выполнить?

ответ

14

Законченное найти ответ сам right here:

проблема возникает из-за RemoteServiceRelativePath, как вы заметил, что это говорит relativepath, один из способов исправить это является использование

((ServiceDefTarget)gwtService).setServiceEntryPoint("/some/absolute/path"); 

или используйте силу относительного пути (вот как я это делаю, потому что я ленивый)

@RemoteServiceRelativePath("../servX") 

который вместо/MODB/servX или/МОДА/servX будет/servX не независимо от того, какой модуль не называет его также вам необходимо сделать соответствующие изменения в web.xml, так что

+0

Вы можете отметить себя как ответ. +1 от меня. – mgiuca

+0

Я просто добавлю, что 'gwtService' здесь - имя объекта службы async, который вы вернули из GWT.create, и вы должны вызвать setServiceEntryPoint сразу после вызова GWT.create. Это такое разочаровывающее решение ... это делает жизнь довольно сложной для проектов клиентов (я бы предпочел бы обернуть детали URL в библиотеке). Ну что ж. – mgiuca

Смежные вопросы