0

I have written an EJB and a dynamic web project Eclipse on GlassFish server. I used DAO , Facade and JPA. Normally I am calling a method from my service it is giving these errors ;

kitapOduncVerme.xhtml]com.sun.faces.mgbean.ManagedBeanCreationException

PWC1406: Servlet.service() for servlet Faces Servlet threw  exceptionjava.lang.NullPointerException 
at com.mesutemre.kitapislemleri.KitapOduncVermeBean.initList(KitapOduncVermeBean.java:47)   
at com.mesutemre.kitapislemleri.KitapOduncVermeBean.initialize(KitapOduncVermeBean.java:43)

My codes are below;

@ManagedBean(name = "oduncKitapVerBean")
@ViewScoped
public class KitapOduncVermeBean implements Serializable{

private static final long serialVersionUID = 1L;

private List<Kitaplar> entityList = new ArrayList<Kitaplar>();
private Kitaplar selectedEntity;
private Kitaplar entity;
private String kullaniciadi;

private KitaplarFacade service;

public KitapOduncVermeBean() {
    entity = new Kitaplar();
    selectedEntity = new Kitaplar();

}

@PostConstruct
public void initialize(){
    HttpSession session = Util.getSession();
    kullaniciadi = Util.getUserName();
   initList();
}

private void initList(){
     entityList = service.findAllKitaplar();
}

DaoImpl

@SuppressWarnings("unchecked")
public List<Kitaplar> findAllKitaplar(){
    return em.createNamedQuery("tumkitaplarigetir").getResultList();
}

Dao

@Stateless
@LocalBean
public class KitaplarDAO extends KitaplarDaoImpl<Kitaplar> implements Serializable{

private static final long serialVersionUID = 1L;

@Override
public List<Kitaplar> findAllKitaplar() {
    return super.findAllKitaplar();
}

FacadeImpl

@Stateless
@LocalBean
public class KitaplarFacadeImpl implements KitaplarFacade,Serializable {


private static final long serialVersionUID = 1L;
@EJB
KitaplarDAO kitapDao;


@Override
public List<Kitaplar> findAllKitaplar() {
    return kitapDao.findAllKitaplar();
}

}

Facade

@Local
public interface KitaplarFacade {
public abstract List<Kitaplar> findAllKitaplar();

}

I can't see any problem in this codes? But Why am I getting that errors?

emreturka
  • 846
  • 3
  • 18
  • 44

1 Answers1

1

ManagedBeanCrearionException is simply wrapping and rethrowing the NullPointerException, that is very easy to debug: you have a null variable at the exact line that appears in the stack trace.

In KitapOduncVermeBean class, you are declaring service property, but you are not initializing it, therefore it's null when invoked in initList() method. Since it's an EJB, annotate it as such and the EJB container will instantiate it automatically:

@EJB
private KitaplarFacade service;

Unrelated to the concrete problem, your code is too complicated: with EJB 3.x, in most web applications, you don't need EJBs to implement or expose interfaces.

perissf
  • 15,979
  • 14
  • 80
  • 117