GWT ServiceLocator с многомодульным проектом maven - PullRequest
2 голосов
/ 19 февраля 2011

У меня есть многомодульный проект GWT, и я хотел бы использовать ServiceLocators.У меня есть 3 модуля:

  • «клиент» зависит от общего
  • «общий»
  • «сервер» зависит от общего

Я написал ServiceLocator следующим образом:

public class TreeServiceLocator implements ServiceLocator {
    public Object getInstance(Class<?> clazz) {
        return new TreeService();
    }
}

и поместил этот класс в «общий» модуль, поскольку ServiceLocator имеет пакет com.google.gwt.requestfactory.shared.Однако, когда я компилирую это выдает ошибку, потому что TreeService реализован в модуле «сервер», так как мне нужно, чтобы он возвращал bean-компоненты с сервера и взаимодействовал с Spring и т. Д.?Кроме того, maven выдаст ошибку циклической зависимости, если я попытаюсь включить «сервер» из «общего» модуля.

Спасибо!

1 Ответ

3 голосов
/ 21 февраля 2011

Поместите TreeServiceLocator в пакет server и используйте аннотацию @ServiceName вместо @Service. Эти аннотации имеют тот же эффект, но первый использует строковые литералы вместо литералов класса. Это позволит избежать проблем с компиляцией GWT, если типы серверов недоступны в пути к классам компилятора GWT.

...