У меня есть EJB (PersonManager) в модуле Enterprise Application, который вводит другой EJB (Person):
@Stateful
public class PersonManager implements PersonManagerLocal {
@EJB
private PersonLocal person;
@Override
public void setPersonName(String name) {
person.setName(name);
}
@Override
public String getPersonName() {
return person.getName();
}
}
Я хочу использовать EJB PersonManager в веб-приложении JSF. Я определяю его в faces-config.xml:
<managed-bean>
<managed-bean-name>personManager</managed-bean-name>
<managed-bean-class>ejb.PersonManager</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
Проблема заключается в том, что инъекции PersonLocal EJB не происходит. Свойство person всегда равно NULL. Что я не так понял?
Но если я вставляю PersonManager в управляемый JSF bean следующим образом:
@ManagedBean
@RequestScoped
public class Index {
@EJB
private PersonManagerLocal personManager;
....
ЭТО РАБОТАЕТ. Мне нужен первый сценарий, пожалуйста, помогите мне:-D