Как жениться на GWT (RPC) на сервере и на Weld / CDI? - PullRequest
0 голосов
/ 14 июня 2011

Вопрос по интеграции GWT с CDI (Seam / Weld) не привлек большого внимания, поэтому я попробую второй раз. На стороне сервера я хочу использовать Weld / CDI (сейчас я использую Guice). В Guice у меня есть подкласс RemoteServiceServlet, который назван в модуле, который сам активируется в GuiceServletContextListener. Кто-нибудь написал какой-нибудь класс для регистрации RemoteServiceServlet, чтобы конечная точка GWT RPC получала экземпляры из Weld?

1 Ответ

0 голосов
/ 14 мая 2012

Если вы используете CDI (как часть контейнера EE6), вы можете аннотировать свои GWT RemoteServiceServlets с помощью @WebServlet, и они будут компонентами CDI. @Inject будет работать с ними, даже @PersistenceContext, @Resource и другими вещами, если они настроены должным образом (серверам EE не требуется какая-либо конфигурация, для других веб-контейнеров, смотрите документацию по сварке, им нужны некоторые слушатели, настроенные в web.xml) , Я использовал эту архитектуру много раз.

То, что вы упомянули в своем другом вопросе («Очевидно, CDI не будет работать с классами, производными от javax.servlet.Servlet.»), Больше не должно быть истинным, как также заметил комментатор, это исправлено в 1.1.

Единственная проблема, которую я вижу сейчас, состоит в том, что, если я попытаюсь добавить перехватчик в мой @WebServlet, загрузка завершится неудачно, потому что GWT RemoteServiceServlet объявляет некоторые конечные методы (getSerializationPolicy), поэтому он не может сделать из него прокси.

...