将JSF Managed Bean注入EJB

Bud*_*tne 4 jsf ejb java-ee

是否可以将JSF Managed Bean注入EJB?我已将JSF Managed Beans注入另一个JSF Managed Bean作为@ManagedProperty.但是当我对EJB做同样的事情时,我得到一个零点异常.

Bal*_*usC 11

不,那是不可能的.该@ManagedProperty内部工程@ManagedBean类(JSF托管bean)只.您只能使用@EJB@Inject注入另一个EJB或CDI托管bean(一个@Named类).

但是,从技术上讲,在像EJB这样的业务服务类中注入像JSF或CDI托管bean这样的前端类是没有意义的.EJB应该以这样的方式设计,即它可以在没有更改的情况下重用一个完全不同的前端,如JAX-RS Web服务,甚至是普通的servilla servlet.一个EJB绝对不应该有任何javax.faces.*的进口/依存关系(如因为,它不应该有任何javax.ws.rs.*也不是javax.servlet.*的).

如果您打算将数据从JSF托管bean传递到EJB,那么只需将其作为方法参数传递.这些数据通常是JPA的风格@Entity或至少是返回实体的ID /关键字.