Позвольте мне начать с того, что, если вы еще этого не сделали, я настоятельно рекомендую посмотреть эту презентацию Google I / O, посвященную лучшим практикам GWT Architecture .Я нашел это очень полезным, и это то, откуда пришло большинство следующего:
Я создал абстрактный сервлет "dispatch", который расширяет GWT RemoteServiceServlet.У каждого моего модуля есть только один сервис (который расширяет мой абстрактный сервис диспетчеризации), с помощью которого я регистрирую набор обработчиков запросов.Все вызовы службы GWT для данного модуля GWT поступают в диспетчерскую службу этого модуля, которая просматривает тип запроса и отправляет его соответствующему обработчику запросов.Обработчики запросов, по сути, обрабатывают работу, которая ранее находилась в сервисном сервлете.Помимо упрощения вашей жизни благодаря меньшему количеству сервлетов, которые можно зарегистрировать в файле web.xml (не говоря уже об исключении дополнительных интерфейсов, требуемых GWT), вы можете более легко управлять объектом диспетчера, который обрабатывает всю фактическую диспетчеризацию.Вы можете, например, передать любой реальный / фиктивный объект, который вам нравится, в эти обработчики запросов, поскольку вы, а не веб-контейнер, отвечаете за их создание.
И хотя я свернул свой собственный, Для этой цели существует проект gwt-dispatch .
Надеюсь, это поможет.