JSF - erro(logar)

NAO SEI QUE ERRO É ESSE, JA VERIFIQUEI O METODO LOGAR, PELO QUE PARECE ESTÁ CORRETO.CADASTRO NO BANCO O USUARIO, QUANDO VOU LOGAR PARECE ESSE ERRO…QUAL O PROBLEMA? COMO O OBJETO É NULL SE EXISTE NO BANCO???

HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: java.lang.NullPointerException
javax.faces.webapp.FacesServlet.service(FacesServlet.java:323)

root cause

javax.faces.el.EvaluationException: java.lang.NullPointerException
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:102)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:387)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:764)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1185)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)

root cause

java.lang.NullPointerException
locadora.controle.LoginMb.logar(LoginMb.java:33)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
java.lang.reflect.Method.invoke(Unknown Source)
org.apache.el.parser.AstValue.invoke(AstValue.java:191)
org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
org.apache.jasper.el.JspMethodExpression.invoke(JspMethodExpression.java:68)
javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:88)
com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
javax.faces.component.UICommand.broadcast(UICommand.java:387)
javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:764)
javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1185)
com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:82)
com.sun.faces.lifecycle.Phase.doPhase(Phase.java:102)
com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
javax.faces.webapp.FacesServlet.service(FacesServlet.java:310)

note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.


Apache Tomcat/6.0.26

No método logar da classe LoginMb na linha 33, o que vc exatamente está fazendo nesta parte do código?

Você não deve estar instanciando o objeto utilizado nesta parte do código.

veja meu método logar

[code]public String logar()
{
Cliente clienteDoBanco = this.dao.obter(this.getCliente().getLogin());// obtem o login
if (clienteDoBanco.getLogin()== null)
{
FacesContext contexto = FacesContext.getCurrentInstance();
contexto.addMessage("erroLogin", new FacesMessage("O Cliente não existe."));
return "falha";

	}
	else if (clienteDoBanco.validarSenha(this.getCliente().getSenha()))// se existir armazena na sessão e loga
	{
		FacesContext contexto = FacesContext.getCurrentInstance();
		SessaoMb sessao = (SessaoMb) contexto.getApplication().createValueBinding("#{sessaoMB}").getValue(contexto);

LINHA 33 ------> sessao.setCliente(clienteDoBanco); //armazena o na sessão

		return "sucesso";// chama a pagina de home
	}
	else
	{
		FacesContext contexto = FacesContext.getCurrentInstance();
		contexto.addMessage("erroLogin", new FacesMessage("Senha inválida."));
		return "falha";
	}
}[/code]

Você já testou se o objeto cliente esta sendo mesmo iniciado?

Porque se estiver seu contexo não está inicializando a sessão. Dá uma olhadinha nisso aí.

Sessao é null.

eu resolvi , tudo por causa de uma letrinha #(sessaoMB) , e o meu bean está assim #(sessaoMb)… depois de tanto procurar o erro e postando aqui pude observar melhor, acabei encontrando…rs

valeu…