Я пытаюсь использовать Guice для ввода свойств управляемого компонента JSF. Все это работает на Google App Engine (который может или не может быть важно)Guice and JSF 2
Я следовал инструкции здесь:
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 нуждается в конструкторе no-arg для создания компонента.
Я все это видел, прежде чем задавать вопрос, и так как никто из ящиков не думал, что я спрошу. Я пробовал Guicesf и это сахара, и никто из них не работал. Я, наконец, взял код из ссылки snippets.dzone.com и изменил его на ощупь и, похоже, работает. Модификация состояла в том, чтобы перенести создание инжектора из getValue, а затем отправить новый модуль ervletModule и мой собственный модуль во время создания. Иначе это не сработало. Затем я смог удалить свой ServletContextListener из web.xml. Наверное, больше, чем вы хотели знать, но спасибо за помощь! – digitaljoel
В этом случае вы должны были упомянуть «Я пробовал этот, он не работал» _ этим образом_/_with this exception_ »;) – Bozho
Да, я должен был. Извини за это. – digitaljoel