Erro ao associar managebean HTTP Status 500

23 respostas
joaolenosi

Ola amigos, estou usando o Eclipse Java EE. Eu crie um projeto Dynamic web project utilizando java server faces, e o servidor de aplicação é o Jboss 7.1 final!
Bom estou com um problema na hora de associar o managebean ao meu arquivo .xhtml, quando eu clico no botão da erro.
Aqui é o caminho, como eu acesso minha aplicação

http://localhost:8080/SistemaLogin/login.jsf

Aqui é meu arquivo .xhtml
<?xml version = "1.0" encoding="ISO-8859-1" ?>
<html xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core">

	<h:head>
		<title>SISTEMA DE LOGIN - LUNAR TECNOLOGIA</title>
	</h:head>

	<h:body>
		<h:form  id="PageForm">
			 <center>
			 
			 <h:outputText value="Bem vindos" /><br/>
			 <h:outputText value="Sistema de Login JSF 2.0 mais AJAX"  /><br/><br/>
			 
			 <h:outputText  value="Login.: " />
			 <h:inputText id="txtLogin" autocomplete="true" value="#{LoginFormBean.login}" />
			 
			 <h:outputText value=" Senha.: " />
			 <h:inputSecret id="txtSenha" autocomplete="false" value="#{LoginFormBean.senha}" />
			 
			 <br/><br/>
			 <h:commandButton id="btSalvar"   value="Logar" 	title="Clique aqui para Cadastrar." action="#{LoginFormBean.onBotaoSalvarClick}" />
			 <h:commandButton id="btCancelar" value="Cancelar" title="Clique aqui para Cancelar." acton="#{LoginFormBean.onBotaoCancelar}"/>
			 	 
			 </center>
			 
		</h:form>	 
	</h:body>

</html>

Aqui é minha class java:

package com.formulario.bean;

import javax.enterprise.inject.Model;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

@ManagedBean(name = "LoginFormBean")
@RequestScoped

public class LoginFormBean {
	
	//Atributos
    private	String login;
    private String senha;
    
    //Metódos Getter
	public String getLogin() {
		return login;
	}


	public void setLogin(String login) {
		this.login = login;
	}
	

	public String getSenha() {
		return senha;
	}


	public void setSenha(String senha) {
		this.senha = senha;
	}


	//Metódo construtor
	public LoginFormBean() { 
		System.out.print("Instanciando Objeto ");
	}
	
	public String onBotaoSalvarClick()
	{
		System.out.println("Úsuario logado com sucesso!");
		
		if(login != null && login.length() > 0 && senha != null && senha.length() > 0){
			
			System.out.println("Úsuario logado.: "+login+" - Senha.: "+senha);
			
		}
			
		return null;
	}
	
	public String onBotaoCancelar(){
		
		this.setLogin("");
		this.setSenha("");
		
		return null;
	}

}

Aqui é o erro que estar acontecendo ao clicar no botao.

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: /login.xhtml @18,85 value="#{LoginFormBean.login}": Target Unreachable, identifier 'LoginFormBean' resolved to null
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)


root cause 

javax.el.PropertyNotFoundException: /login.xhtml @18,85 value="#{LoginFormBean.login}": Target Unreachable, identifier 'LoginFormBean' resolved to null
	com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
	javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
	javax.faces.component.UIInput.validate(UIInput.java:960)
	javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
	javax.faces.component.UIInput.processValidators(UIInput.java:698)
	javax.faces.component.UIForm.processValidators(UIForm.java:253)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
	javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
	com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)


note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.


--------------------------------------------------------------------------------

log do eclipse

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: /login.xhtml @18,85 value="#{LoginFormBean.login}": Target Unreachable, identifier 'LoginFormBean' resolved to null
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)


root cause 

javax.el.PropertyNotFoundException: /login.xhtml @18,85 value="#{LoginFormBean.login}": Target Unreachable, identifier 'LoginFormBean' resolved to null
	com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
	javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
	javax.faces.component.UIInput.validate(UIInput.java:960)
	javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
	javax.faces.component.UIInput.processValidators(UIInput.java:698)
	javax.faces.component.UIForm.processValidators(UIForm.java:253)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
	javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
	com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)


note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.


--------------------------------------------------------------------------------

JBoss Web/7.0.13.Final

23 Respostas

joaolenosi

A linha 25, ja corrigi o nome action !!!

Alguem pode ajudar a resolver esse problema?

kilate

Olá meu amigo! Tente trocar o valor do atributo autocomplete. Ele deve ser preenchido com on ou off. E seu valor padrão é on!

Abraços!

joaolenosi

Amigo tentei trocar, coloquei o autocomplete=“true” nos dois, e depois coloquei false, pra testar, mas continua dando o mesmo erro !!!

kilate

Coloque on, ou tire a declaração do atributo.

Abraço!!

joaolenosi

kilate , poderia explicar melhor ? Tirar a declaração do atributo ? Òo

kilate

Olá meu amigo,

<h:inputText id="txtLogin" autocomplete="true" value="#{LoginFormBean.login}" />

coloque:

autocomplete=“on

joaolenosi

Beleza amigão, vou testar aqui!!

joaolenosi

Troquei por on, mesmo assim ainda continuo com o erro!

=/

joaolenosi

Alguem ainda tem uma luz ?

joaolenosi

Up

kilate

Olá meu amigo, acho que identifiquei seu problema:

public String onBotaoSalvarClick()  
    {  
        System.out.println("Úsuario logado com sucesso!");  
          
        if(login != null && login.length() > 0 && senha != null && senha.length() > 0){  
              
            System.out.println("Úsuario logado.: "+login+" - Senha.: "+senha);                
        }                
        return null;  
    }

Quando o if termina, ele retorna null. Sendo que, quando o método retorna String ele deve retornar o nome do .xhtml que será redirecionado após a execução do metodo. Tente:

public String onBotaoSalvarClick()  
    {  
        System.out.println("Úsuario logado com sucesso!");  
          
        if(login != null && login.length() > 0 && senha != null && senha.length() > 0){  
              
          System.out.println("Úsuario logado.: "+login+" - Senha.: "+senha); 
		     return "estouLogado" // Página (nome do xhtml) que deve ser autenticada               
        }                
             return "login"; //Página (nome do xhtml) caso não esteja logado 
    }
joaolenosi

amigo, fiz conforme, você colocou aê, mas ainda continua dando o mesmo erro ?

=/

Não entendo o que estou fazendo de errrado…

joaolenosi

Dentro da minha pasta lib, não possui nenhuma biblioteca!!
Será que o erro estar relacionado a isso ?

RiQuInHo_

juro que testei e funcionou normal…

joaolenosi

RiQuInHo_$_$ , serio ? ÒO

Como você criou o projeto, pra vê se foi da mesma forma como criei!!
Tá usando qual ide?

joaolenosi

Quando eu clico em qualquer um dos botões ocorre esse erro,

type Exception report

message

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

exception

javax.servlet.ServletException: /Login.xhtml @18,83 value="#{loginFormBean.login}": Target Unreachable, identifier 'loginFormBean' resolved to null
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:606)

root cause

javax.el.PropertyNotFoundException: /Login.xhtml @18,83 value="#{loginFormBean.login}": Target Unreachable, identifier 'loginFormBean' resolved to null
	com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:100)
	com.sun.faces.renderkit.html_basic.HtmlBasicInputRenderer.getConvertedValue(HtmlBasicInputRenderer.java:95)
	javax.faces.component.UIInput.getConvertedValue(UIInput.java:1030)
	javax.faces.component.UIInput.validate(UIInput.java:960)
	javax.faces.component.UIInput.executeValidate(UIInput.java:1233)
	javax.faces.component.UIInput.processValidators(UIInput.java:698)
	javax.faces.component.UIForm.processValidators(UIForm.java:253)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
	javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:1214)
	javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:1172)
	com.sun.faces.lifecycle.ProcessValidationsPhase.execute(ProcessValidationsPhase.java:76)
	com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
	com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)

note The full stack trace of the root cause is available in the JBoss Web/7.0.13.Final logs.
joaolenosi

Alguem poderia testar esse projeto pra vê se estar funcionando ?

RiQuInHo_

ide do eclipse mesmo…

joaolenosi

Ta beleeza então.

Aqui ainda continuo com o mesmo erro

kilate

Amigo, baixe a implementação do Mojarra do JSF:

http://javaserverfaces.java.net/

Coloque a biblioteca em WEB-INF/lib

Abraços!

D

Como perguntar não ofende, só para deixar claro o faces-config está definindo o loginFormBean corretamente?

W

amigo no seu .xhtml tem isso

<?xml version = "1.0" encoding="ISO-8859-1" ?>

remova e teste! isso é para xml não para xhtml

W

outra dica

if (login != null && login.length() > 0 && senha != null && senha.length() > 0)

sua String o padrão nela sem nada é nula, isso por que você esta usando Jboss 7.1, no tomcat 7 ele tem um bug que inicia a variavel como “” ou 0,
como você esta usando Jboss as 7.1 se a variavel vir da sua xhml sem nada ela vem null, se você valida que ela é != null então se passar ela ja tem um .length() > 0
não é necessario validar essa parte ok.

Criado 25 de junho de 2012
Ultima resposta 2 de ago. de 2012
Respostas 23
Participantes 5