JavaEE @Injection / @EJB返回null

时间:2015-02-16 20:17:08

标签: java java-ee ejb

我是JavaEE编程的新手,我在使用@Injection时遇到了困难。为了让mysels熟悉数据库,我决定创建一个简单的CRUD应用程序并遵循这个例子:https://code.google.com/p/javaee6-crud-example/source/browse/我创建了基本相同的文件但不知何故,我在@EJB之后得到一个空异常。

@RequestScoped
@ManagedBean
public class MainUcenci {
        private List<Ucenec> ucenci;

        @EJB
        private ServletDAO servletDao;


        @PostConstruct
        public void init(){
                ucenci = servletDao.getUcenci();
        }

        public List<Ucenec> getUcenci(){
                return ucenci;
        }

}

在测试之后我发现当调用init()时,servletDao仍然是null,尽管它应该在那时被注入(不是init方法的全部点,它是在所有注入后调用的吗?)。

这里也是ServletDao代码的相关部分

@Stateless
public class ServletDAO {
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("$objectdb/db/sola_ucenec.odb");
        EntityManager ucenecEm = emf.createEntityManager();

        public List<Ucenec> getUcenci() {

           List<Ucenec> ucenecList = null;

          ucenecList = ucenecEm.createQuery("SELECT g FROM Ucenec g",                   Ucenec.class).getResultList();

        return ucenecList;
        }

}

P.S。在JSF中,我称之为:

<ui:repeat value="#{mainUcenci.ucenci}" var="item">

0 个答案:

没有答案