Внезапно проблема связывания бинов
Проблема со связыванием CDI-бина (jsf) и сессионного бина jsp
Вкратце. Есть проект на jsp/jstl, в котором используется сессионный бин - SessionBean.java. Добавил в проект новую страницу jsf - test.xhtml и бин - TestBean.java, снабженный аннотациями CDI - @Named, @RequestScoped.
Возникла необходимость получить доступ из testBean к полям sessionBean. Использование стандартного механизма связывания CDI к успеху не приводит (создается пустой объект вместо нахождения существующего):
Фрагмент TestBean
...
@Inject private SessionBean sessionBean;
@PostConstruct
public void init(){
if(sessionBean!=null) setDBId(sessionBean.getDBId());
}
...
По всей видимости при создании jsf-фрэймворком CDI-бина, вместе с объектом создается и какая-то метаинформация, по которой затем осуществляется поиск и внедрение @Inject. Поскольку sessionBean создан jsp-движком, а не jsf, то эта метаинформация отсутствует и связывания не происходит. По идее проблема довольно типичная при переходе на jsf, может кто подскажет как ее решить?
Вкратце. Есть проект на jsp/jstl, в котором используется сессионный бин - SessionBean.java. Добавил в проект новую страницу jsf - test.xhtml и бин - TestBean.java, снабженный аннотациями CDI - @Named, @RequestScoped.
Возникла необходимость получить доступ из testBean к полям sessionBean. Использование стандартного механизма связывания CDI к успеху не приводит (создается пустой объект вместо нахождения существующего):
Фрагмент TestBean
...
@Inject private SessionBean sessionBean;
@PostConstruct
public void init(){
if(sessionBean!=null) setDBId(sessionBean.getDBId());
}
...
По всей видимости при создании jsf-фрэймворком CDI-бина, вместе с объектом создается и какая-то метаинформация, по которой затем осуществляется поиск и внедрение @Inject. Поскольку sessionBean создан jsp-движком, а не jsf, то эта метаинформация отсутствует и связывания не происходит. По идее проблема довольно типичная при переходе на jsf, может кто подскажет как ее решить?
