Guice и JSF 2
Я пытаюсь использовать Guice для добавления свойств управляемого компонента JSF. Это все работает на Google App Engine (что может или не может быть важным)
Я следовал инструкциям здесь:
http://code.google.com/docreader/#p=google-guice&s=google-guice&t=GoogleAppEngine
Одна проблема в первом шаге. Я не могу создать подкласс модуля Servlet и настроить там мои отображения сервлета, потому что Faces обрабатывается javax.faces.webapp.FacesServlet, который подклассов Servlet, а не HttpServlet. Итак, я попытался оставить свою конфигурацию сервлета в файле web.xml и просто создать экземпляр нового ServletModel() вместе с моим бизнес-модулем при создании инжектора в прослушивателе контекста, описанном на втором шаге.
Сделав все это вместе с конфигурацией web.xml, мой управляемый компонент не получает никаких свойств. Метод заключается в следующем
@ManagedBean
@ViewScoped
public class ViewTables implements Serializable
{
private DataService<Table> service;
@Inject
public void setService( DataService<Table> service )
{
this.service = service;
}
public List<Table> getTables()
{
return service.getAll();
}
}
Итак, мне интересно, есть ли хитрость, чтобы Guice вводил в управляемый компонент JSF? Я, очевидно, не могу использовать инъекцию конструктора, потому что JSF нужен конструктор без аргументов для создания компонента.
6 ответов
Проверьте следующую структуру / рекомендацию по интеграции JSF-Guice:
http://code.google.com/p/jsf-sugar/
http://notdennisbyrne.blogspot.com/2007/09/integrating-guice-and-jsf.html
http://cagataycivici.wordpress.com/2007/03/26/integrating_guice_and_jsf/
Как насчет этого подхода, хорошо работает для нас:
http://uudashr.blogspot.com/2008/12/guicing-jsf-with-guice.html
Вы также можете создать HTTP-сервлет, который затем просто делегирует запрос в FacesServlet (как обертка). Это должно дать вам тот же эффект, используя Guice Servlet.
Проверьте http://code.google.com/p/guice2jsf/ и веб-сайт starchu.blogspot.com, он имеет отличную библиотеку, которая обеспечивает интеграцию с Guice и JSF 2.0
Будучи разработчиком JSF Sugar, я действительно хотел бы знать проблему, с которой вы столкнулись. Мы уже используем его в производстве, поэтому здесь не должно быть никаких "шоу-стопоров", может быть, что-то не очень хорошо задокументировано? Просто напишите мне: murbanek(at)gmx_net (замените _ на.) .
Поскольку информация в этом посте устарела, но вопрос все еще актуален, я хотел бы поделиться своими выводами по этой теме. Я написал небольшое руководство, включающее пример проекта, который можно запустить, о том, как настроить полностью веб-стек, работающий на полную мощность. Вы можете найти его здесь: https://github.com/skuzzle/guice-jsf