Bom dia a todos, estou com um problema de java.lang.NullPointerException ao efetuar uma busca no banco para retornar todos os objetos da minha Entity Endereco. Segue o Erro juntamente com as classes que são indicadas. Se alguém puder me ajudar agradeço muito, já revisei tudo e não consigo identificar qual o problema.
Erro no Console
FATAL: JSF1073: javax.el.ELException obtido durante o processamento de RENDER_RESPONSE 6: UIComponent-ClientId=, Message=/pages/protected/defaultUser/indexEndereco.xhtml @14,51 value="#{enderecoMB.todosEnderecos}": java.lang.NullPointerException
FATAL: /pages/protected/defaultUser/indexEndereco.xhtml @14,51 value="#{enderecoMB.todosEnderecos}": java.lang.NullPointerException
javax.el.ELException: /pages/protected/defaultUser/indexEndereco.xhtml @14,51 value="#{enderecoMB.todosEnderecos}": java.lang.NullPointerException
Caused by: javax.el.ELException: java.lang.NullPointerException
at javax.el.BeanELResolver.getValue(BeanELResolver.java:368)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
... 50 more
Caused by: java.lang.NullPointerException
at br.com.bean.EnderecoMB.listarEnderecos(EnderecoMB.java:94)
at br.com.bean.EnderecoMB.getTodosEnderecos(EnderecoMB.java:115)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:363)
... 57 more
Seguem as classes:
EnderecoDAO.class
public class EnderecoDAO extends GenericDAO<Endereco> {
private static final long serialVersionUID = 1L;
public EnderecoDAO() {
super(Endereco.class);
}
}
que estende a classe GenericDAO, onde se encontra o método de busca.
GenericDAO.class
abstract class GenericDAO<T> implements Serializable {
private static final long serialVersionUID = 1L;
private static final EntityManagerFactory emf = Persistence.createEntityManagerFactory("GuardaMunicipalPU");
protected EntityManager em;
private Class<T> entityClass;
public void createEntityManager() {
em = emf.createEntityManager();
}
//outros métodos de transação
public List<T> buscarTodos() {
CriteriaQuery cq = em.getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
return em.createQuery(cq).getResultList();
}
//Getters e Setters
}
o método da classe DAO é usado na Classe EnderecoFacade.
EnderecoFacade.class
public List<Endereco> listarTodos() {
enderecoDAO.beginTransaction();
List<Endereco> resultado = enderecoDAO.buscarTodos(); //método dao
enderecoDAO.closeTransaction();
return resultado;
}
e posteriormente na classe EnderecoMB.
EnderecoMB.class
public List<Endereco> getTodosEnderecos() {
if(enderecos == null) {
listarEnderecos() ;
}
return enderecos;
}
public void listarEnderecos() {
enderecos = enderecoFacade.listarTodos(); //método facade
}
Na minha Página JSF esta assim:
indexEndereco.xhtml
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:body>
<ui:composition template="/pages/protected/templates/master.xhtml">
<ui:define name="divMain">
<h:form id="formEnderecos">
<p:dataTable id="tabelaEnderecos" value="#{enderecoMB.todosEnderecos}" var="endereco" emptyMessage="#{bundle.semDados}" paginator="true" rows="10"
paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
rowsPerPageTemplate="5,10,15">
<p:column>
<f:facet name="header">
<h:outputText value="#{bundle.logradouro}" />
</f:facet>
<h:outputText value="#{endereco.logradouro}" />
</p:column>
...
Desde já agradeço galera, vlw.

