【发布时间】:2012-01-27 10:01:32
【问题描述】:
我在企业应用程序模块中有一个 EJB(PersonManager),它注入另一个 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();
}
}
我想在 JSF Web 应用程序中使用 PersonManager EJB。我在 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
-
你是对的 :-D 这只是理论上的,我想知道答案。
-
@Forty 那么为什么它不起作用呢?我不清楚答案。
标签: jsf ejb managed-bean