Essa vquery parece não está sendo executada. Debuguei e não consigo chegar nela. Chega na chamada ao FactorySingleton ele não anda mais. Antes o debug reclamou de faltar o hibernate-entitymanager.jar. Adicionei e continuou a reclamar. Restartei o eclipse e agora ele para nesse método e não anda mais.
Ele para aqui
private EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();
Parece não executar essa query, pois a lista vem vazia. Mas pelo log do Container a query é montada, tando que se carrego direta no banco funciona, logo o erro está na chamada.
import javax.persistence.EntityManager;
A minha chamada completa do método.
[code]public List<Escola> findAll() {
List <Escola> listEscola = null;
try {
HttpSession session = (HttpSession) FacesContext.getCurrentInstance().getExternalContext().getSession(false);
LoginControle loginControle = (LoginControle) session.getAttribute("LoginControle");
Login login = loginControle.getLogin();
String comando = "select distinct esc from Escola esc ,Matricula mat" +
" where mat.idescola = esc.idescola" +
" and mat.idpessoa = " + login.getPessoa().getIdPessoa() +
" and mat.situacao = 'A' order by esc.nome";
Query query = em.createQuery(comando);
listEscola = query.getResultList();
} catch (Exception e) {
e.printStackTrace();
}finally{
em.close();
}
return listEscola;
}[/code]
GRAVE: java.lang.NullPointerException
at br.com.mosaicodigital.modelo.ListaEscola.findAll(ListaEscola.java:43)
at br.com.mosaicodigital.controle.MostraEscolaAtiva.getEscolas(MostraEscolaAtiva.java:37)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:302)
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:116)
at com.sun.el.parser.AstValue.getValue(AstValue.java:163)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:219)
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194)
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:182)
at javax.faces.component.UIData.getValue(UIData.java:731)
at javax.faces.component.UIData.getDataModel(UIData.java:1798)
at javax.faces.component.UIData.setRowIndexWithoutRowStatePreserved(UIData.java:484)
at javax.faces.component.UIData.setRowIndex(UIData.java:473)
at javax.faces.component.UIData.visitColumnsAndColumnFacets(UIData.java:2078)
at javax.faces.component.UIData.visitTree(UIData.java:1431)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
at javax.faces.component.UIComponent.visitTree(UIComponent.java:1600)
at com.sun.faces.application.view.StateManagementStrategyImpl.saveView(StateManagementStrategyImpl.java:149)
at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:133)
at com.sun.faces.application.view.WriteBehindStateWriter.flushToWriter(WriteBehindStateWriter.java:225)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:418)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:121)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:410)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:281)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:170)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
GRAVE: java.lang.NullPointerException
at br.com.mosaicodigital.modelo.ListaEscola.findAll(ListaEscola.java:43)[/quote]
Qual é a linha 43 do seu ListaEscola?
Independente disso, vc comentou que para aqui:
private EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();
imagino que a linha 43 seja esta:
Query query = em.createQuery(comando);
Seu EntityManager está null? Talvez algum erro de biblioteca ou configuração.
Se o EntityManager está null, qual o código do método ‘createEntityManager()’ da classe ‘EntityManagerFactorySingleton’ ?
Acho q tá faltando um setAttribute(“LoginControle”,meu_obj); Isso tá faltando, mas não sei onde colocar esse cara e o que vai em meu_obj. Que objeto devo colocar e onde vai o setAttribute(), em que momento, em que parte do sistema. Dúvidas, dúvidas, dúvidas.
Trabalha eu e um colega e toda parte de login ele fez. Não que eu soubesse, pois eu não saberia e talvez fizesse igual. O projeto saiu de nosso escopo(controle) e agora to tentando apagar o incêndio. Tô apanhando muito e não dá para refazer. Só precios pegar o usuário logado hoje, nem que seja por gambi, só para ir pra teste e depois sim, com a cabeça no lugar fazer as alterações, a menos se a gambi for bem feita,rs.
public Login validaLogin(Login login){
EntityManager em = EntityManagerFactorySingleton.getInstance().createEntityManager();
em.getTransaction().begin();
Login loginValidado = null;
try {
LoginDAO loginDAO = new LoginDAO(em);
List<Login> listLogin = loginDAO.buscaLogin(login.login);
if(listLogin != null && listLogin.size()> 0) {
Login loginAchado = listLogin.get(0);
String pwdCriptografada = CriptografiaPwd.criptografar(login.getPwd());
if(login.getPwd() != null && pwdCriptografada.equals(loginAchado.getPwd())){
loginAchado.setLogado(true);
loginValidado = loginAchado;
}
}
em.getTransaction().commit();
} catch (Exception e) {
e.printStackTrace();
if(em.getTransaction().isActive()){
em.getTransaction().rollback();
}
}finally{
em.close();
}
return loginValidado; }
veja se ele tá recendo o login que foi enviado por parêmetro;
depois veja se a listLogin está vindo preenchida…
e veja se ele retorna um loginValidado preenchido…
Caso sim me avise que vou te dar uma dica…
Vou dando F5 e de repente para, não anda mais e quando começa o debug ele não para na linha que foi marcada. Há um jeito belê de se fazer um debug no eclipse?
F5 => Entra no método da linha.
F6 => Executa o método e vai para a próxima linha.
F8 => Libera o programa até o próximo BreakPoint.
Desmarque todos os breakpoints e coloque só na linha que você quer…
Depois selecione a variável q quer saber o valor clique com o botão direito Inspect…