我在企业应用MODUL的EJB(的PersonManager)中注入另一个EJB(人):JSF托管bean EJB注入
@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();
}
}
我想使用的PersonManager EJB在JSF的Web应用程序。我在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
你为什么不使用@EJB注解,而不是手动faces-config.xml中声明它?这就像在注释未被发明时试图回到过去:P – 2011-12-24 19:36:48
你是对的: - 它只是理论上的,我想知道答案。 – Forty 2011-12-24 20:45:50
@Forty那么为什么它不工作?答案并不清楚。 – 2013-06-19 17:35:56