将 EJB 注入 JSF 托管 bean

Inject an EJB into a JSF managed bean

我有一个 war 应用程序,其中包含一些 JSF 托管 bean 和用于某些业务逻辑的 EJB。我正在使用 JSF 1.2、JBoss 5 和 java 1.6

我的托管 bean:

@ManagedBean(name = "managedBean")
@SessionScoped
public class MyManagedBean implements Serializable {
   @EJB(mappedName = "ejbBean")
   public MyEjbBean ejbBean;
   ....
}

EJB bean:

@Singleton(name = "ejbBean")
public class MyEjbBean {
   ....
}

页面未呈现,错误:

javax.naming.NamingException: Could not dereference object [Root exception is javax.naming.NameNotFoundException: ejb not bound]

我做错了什么?

JBoss 5 不支持@Singleton EJB(在EJB3.1规范中加入),可以使用JBoss @Service注解创建单例。

查看说明here