我在托管bean中使用session ejb时得到nullpointer异常

时间:2013-03-18 08:44:14

标签: jsf jpa nullpointerexception

my  sessionfacade class

         package com.entity;

         import javax.ejb.Stateless;
         import javax.persistence.EntityManager;
         import javax.persistence.PersistenceContext;

         @Stateless
         public class UsersFacade extends AbstractFacade<Users> implements UsersFacadeLocal 
         {
         @PersistenceContext(unitName = "My_communityPU")
         private EntityManager em;

         @Override
         protected EntityManager getEntityManager() {
         return em;
         }

         public UsersFacade() {
         super(Users.class);
         }

         }



my managed bean class

        package com.jsf;

        import com.entity.Users;
        import com.entity.UsersFacadeLocal;
        import javax.inject.Named;
        import javax.enterprise.context.SessionScoped;
        import java.io.Serializable;
        import java.util.List;
        import java.util.Map;
        import javax.annotation.ManagedBean;
        import javax.ejb.EJB;
        import javax.faces.context.ExternalContext;
        import javax.faces.context.FacesContext;

        @Named(value = "loginMB")
        @ManagedBean
        @SessionScoped
        public class LoginMB implements Serializable {
        @EJB
        private UsersFacadeLocal usersFacade;



        protected Users user;
        protected List<Users> lusers;
        protected String username;    
        protected String password;

           public LoginMB() {

        lusers=usersFacade.findAll();


           }
          }

我不知道为什么我注入mangedbean的ejb不起作用。当我调用findall()时,我得到空指针异常;使用usersFacade的方法 我正在使用glassfish服务器处理netbeans ide。我刚刚在jsf学习jpa,请让我知道我在哪里做错了

1 个答案:

答案 0 :(得分:7)

Container仅在实例化托管bean之后才注入EJB。使用@PostConstruct注释并在那里使用EJB。注入后将调用带注释的方法。