Bean não executa

9 respostas
Marcio_Nogueira

Olá, estou tento o seguinte problema com uma aplicação em jsf: apágina de login é carregada, o submit é executado, porém o managedbean não dá sinal de vida, está mortinho.
Alguém tem uma idéia do que pode estar errado? :?:

9 Respostas

Polverini

poste os códigos

Marcio_Nogueira
Segue o faces-config:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config>
	<managed-bean>
		<managed-bean-name>loginBean</managed-bean-name>
		<managed-bean-class>controle.LoginBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>contratacaoBean</managed-bean-name>
		<managed-bean-class>bean.ContratacaoBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>cadastroBean</managed-bean-name>
		<managed-bean-class>cadastro.CadastroUsuarioBean</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
	<managed-bean>
		<managed-bean-name>CensitarioBean</managed-bean-name>
		<managed-bean-class>cadastro.CensitarioBean</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>
	
	 <managed-bean>
		 <managed-bean-name>LotacaoBean</managed-bean-name>
		 <managed-bean-class>cadastro.LotacaoBean</managed-bean-class>
		 <managed-bean-scope>request</managed-bean-scope>
	 </managed-bean>
	 
	<navigation-rule>
		<from-view-id>/index.jsp</from-view-id>
    <navigation-case>
    	<from-outcome>login</from-outcome>
		<to-view-id>/jsp/login/index_mod.jsp</to-view-id>	
    </navigation-case>
	</navigation-rule>
</faces-config>
o bean:
package controle;

import javax.faces.context.FacesContext;
import javax.servlet.http.HttpSession;

import util.Util;
import dao.CtlreffpDAO;
import dao.RelacPerfilrecursoDAO;
import dao.UfDAO;
import dao.UsuarioDAO;
import entities.Ctlreffp;
import entities.Uf;
import entities.Usuario;

public class LoginBean {

	private String login;
	private String senha;
	
	public LoginBean(){
		
	}
	
	
	public String doLogin() {
		
		System.out.println("Login " + login);
		Usuario user = UsuarioDAO.getInstance().Login(login, Util.criptografar(senha.toLowerCase()));

		if(user!=null) {
			System.out.println("Usuario logado com sucesso !!!");
			SapcSessao sapcSessao = new SapcSessao();
			Ctlreffp ctlref = CtlreffpDAO.getInstance().getCtlreffp();
	
			String strReffp="???";
            int anoRef=0;
            int mesRef=0;
            int anomesRef=0;
            if (ctlref!=null){
                strReffp=ctlref.getStrMesAno();
                anoRef=ctlref.getAno();
                mesRef=ctlref.getMes();
                anomesRef=anoRef*100+mesRef;
            }
		
            sapcSessao.setUsuario(user);
            sapcSessao.idPerfil = (user.getPerfil().getSituacao().equals("1"))?user.getPerfil().getId():0L;
            sapcSessao.setLoginUsuario(user.getLogin());
            sapcSessao.setNomeUsuario(user.getNome());
            sapcSessao.setCpfUsuario(user.getCpf());
            sapcSessao.setUfTrabalho(user.getCodigoUf());
            sapcSessao.setStrReffp(strReffp);
            sapcSessao.setAnoRef(anoRef);
            sapcSessao.setMesRef(mesRef);
            sapcSessao.setAnomesRef(anomesRef);
            sapcSessao.recursoSis = RelacPerfilrecursoDAO.getInstance().recurso(user.getPerfil().getId());
            
            UsuariosLogados.getInstance().addUsuario(user);
            Uf uf = (Uf)UfDAO.getInstance().listaUf(sapcSessao.getUfTrabalho());
			
            FacesContext context = FacesContext.getCurrentInstance();
            HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
            session.setAttribute(SapcSessao.ID, sapcSessao);
            session.setAttribute("USUARIO", user.getId());
            session.setAttribute("local", uf.getNome());
            session.setAttribute("nome", sapcSessao.getLoginUsuario());
            session.setAttribute("uf", sapcSessao.getUfTrabalho());
            session.setAttribute("mesRef", sapcSessao.getMesRef());
            session.setAttribute("anoref", sapcSessao.getAnoRef());
            session.setAttribute("URL","/sapc-www/index_mod.jsp");
			 
		} else {
			System.out.println("Acesso negado !!!");
        }
		return "login";
	}
	
	public static SapcSessao getSession() {
		FacesContext context = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
		return (SapcSessao)session.getAttribute(SapcSessao.ID);
	}
	
	public void logout() {
		FacesContext context = FacesContext.getCurrentInstance();
		HttpSession session = (HttpSession) context.getExternalContext().getSession(true);
		session.setAttribute(SapcSessao.ID, null);
		session.invalidate();
	}

	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;
	}
	
	public void alterarSenha() { 
        try{
            
          /*
            String senha = (String)PropertyUtils.getProperty(form, "senha");

            Usuario usuario = null;
            
            SapcSessao sapcSessao = (SapcSessao)request.getSession().getAttribute("SAPC_SESSAO");         
                       
            String idUsuarioSel = sapcSessao.getIdUsuario().toString();
            usuario = UsuarioDAO.getInstance((Usuario.class, new Long(idUsuarioSel)));
            //usuario = (Usuario)gerPersist.load(Usuario.class, new Long(idUsuarioSel));
            usuario.setSenha(Util.criptografar(senha));
            
            UsuarioDAO.getInstance().saveObject(usuario);
            
            */

        } catch (Exception e){            
        	e.printStackTrace();
        }
    }
}
a index, onde a chamada ao bean é feita:
<%@ page language="java" contentType="text/html; charset=iso-8859-1" pageEncoding="UTF8"%>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%>

<%
//ask the browser not to cache the page
response.setHeader("Pragma", "no-cache");
response.setHeader("Cache-Control", "no-cache");
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
		<meta name="description" content="IBGE / SAPC - Sistema de Administração de Pessoal Censitário" />
		<meta http-equiv="Cache-Control" content="No-Cache" />
		<meta http-equiv="Pragma" content="No-Cache" />
		<meta http-equiv="Expires" content="0" />
		<title>IBGE / SAPC - Sistema de Administra&ccedil;&atilde;o de Pessoal Censit&aacute;rio</title>

		<script type="text/javascript" src="<%=request.getContextPath()%>/jquery/jquery.js"></script>
		<script type="text/javascript" src="<%=request.getContextPath()%>/js/msgErro.js"></script>

		<link type="text/css" rel="stylesheet" media="screen" href="css/estilo_screen.css" />
		<link type="text/css" rel="stylesheet" media="screen" href="css/estilo_screen_beta.css" />
		
		<link rel="shortcut icon" href="img/favicon_sapc.ico" type="image/x-icon" />
		<link rel="icon" href="img/favicon_sapc.ico" type="image/x-icon" />

<!-- Script de abertura de links do select -->
		<script type="text/javascript">
			function novaJanela() {				
				var destaque = document.getElementById("destaqueGoverno");
				var url = destaque.value;
				if (url != "#") {
					window.open(url);
				}
			}
		</script>

		<script type="text/javascript">
			$(document).ready(function() {
				// Limpando a propriedade disabled dos campos do formulario
				$('#login , #senha , #botaoEntrar').removeAttr('disabled');
				
				// Dando foco ao campo nome (facilita a acessibilidade)
				$('#login').focus();
				
				// Botao Entrar
				$('#botaoEntrar').click(function() {
					var form = document.getElementById("formLogin");

					// Valida Login
					if (form.login.value == "") {
						$('#mensagemErro').html('<img src="img/iconeAlerta.jpg" alt="Imagem de Alerta" />&nbsp;O Nome deve ser preenchido!');
						$('#login').addClass('erro');
						return false;
					}
					// Valida senha
					if (form.senha.value == "") {
						$('#mensagemErro').html('<img src="img/iconeAlerta.jpg" alt="Imagem de Alerta" />&nbsp;A Senha deve ser preenchida!');
						$('#senha').addClass('erro');
						return false;
					}
					// Carregando
					$('#login , #senha , #botaoEntrar').attr('disabled' , 'disabled');
					$('#carregando').html('<br /><img src="img/iconeLoad.gif" alt="Imagem de Alerta" />&nbsp;Carregando...aguarde!');
					setTimeout("$('#aviso').html('<br />Demorando muito?<br />Recarregue a página<br />e tente novamente!').fadeIn('slow');", 60000);
					
					$('#formLogin').submit();
				});

				$('#login').focus(function() {
					$('#mensagemErro').html('');
					$('#login').removeClass('erro');
				});
				$('#senha').focus(function() {
					$('#mensagemErro').html('');
					$('#senha').removeClass('erro');
				});
			});
		</script>

		<style type="text/css">
			#fundoCadeado {
				background-image: url(img/fundo_cadeado.jpg);
				background-repeat: no-repeat;
				background-position: top;
			}
			#indexCadeado {
				text-align: left;
				width: 450px;
				float: left;
			}
			#indexLogoCenso {
				text-align: left;
				width: 400px;
				float: right;
			}
			#carregando, #aviso, #mensagemErro {
				color: #FF4500;
				font-weight: bold;
			}
			.erro {
				background-color: #FFEFEF;
				border: 1px solid #FF0000;
			}
		</style>
	</head>
	<body>
		<f:view>
			<h:form id="formLogin" prependId="false">
				<!--TOPO-->
			<div id="globalTopo">
				<div id="topo">
					<jsp:include page="jsp/cabecalho.jsp" />
				</div>
			</div>
			<!--FINAL TOPO-->
			<!--CORPO-->
			<div id="globalCorpo">
				
					<div id="corpo">
						<div id="panorama">
							<img src="img/panorama.jpg" alt="Imagem panoramica com as imagens de todos os Estados brasileiros" title="Fotos dos Estados brasileiros" width="950" height="140" />
						</div>
						<br /><br />
						<div id="indexCadeado">
								<div id="fundoCadeado">
									<table border="0" cellpadding="2" cellspacing="2" align="center" summary="Tabela de entrada de dados para o login de acesso ao sistema.">
										<tr>
											<td width="195">&nbsp;</td>
											<td colspan="2" width="255" height="64">&nbsp;</td>
										</tr>
										<tr>
											<td>&nbsp;</td>
											<td colspan="2">
																								
												<div id="mensagemErro" class="mensagemErro"></div>											
												<!-- 
												<%
												// TESTE PARA JSF
												String erro;
												erro = "Login invalido";
												%>
												 -->
												<h:outputText rendered="#{erros != ''}" value="#{erros}" id="msg" styleClass="mensagemErro" />    
												<h:messages />
											</td>
										</tr>
										<tr align="left">
											<td>&nbsp;</td>
											<td class="textoFormulario"> 
												<label for="nome">Usu&aacute;rio:</label>
											</td>
											<td>
											 											   
												<h:inputText id="login" value="#{loginBean.login}" size="10" maxlength="10" title="Usuário" alt="Digite aqui o login do usuário." styleClass="formataBox" /> 
											</td>
										</tr>
										<tr align="left">
											<td>&nbsp;</td>
											<td class="textoFormulario">
												<label for="senha">Senha:</label>
											</td>
											<td>
												<h:inputSecret id="senha" size="10" value="#{loginBean.senha}" maxlength="10" title="Senha" alt="Digite aqui a senha do usuário." styleClass="formataBox" />
												&nbsp;
												<h:commandButton type="submit" id="botaoEntrar" value="Entrar" action="#{loginBean.doLogin}"/>
											</td>
										</tr>
										<tr> 
											<td align="center">&nbsp;</td>
											<td align="left" colspan="2">
												<div id="carregando" class="textoPadrao"></div>
												<div id="aviso" class="textoPadrao"></div>
											</td>
										</tr>
									</table>
								</div>
						</div>
						<div id="indexLogoCenso">
							<img src="img/imagem_pda.jpg" alt="Logomarca do IBGE" title="IBGE" />
						</div>
					</div>
				
			</div>
			<!--FIM CORPO-->
			<!--RODAPE-->
			<div id="globalRodape">
				<div id="rodape">
					<jsp:include page="jsp/rodape.jsp" />
				</div>
			</div>
			<!--FIM RODAPE-->
			</h:form>
		</f:view>
	</body>
</html>
Flavio_machine

Não é muito aconselhável utilizar javascrit com jsf use richfaces é bem mais facil a manutenção e mais rápido para desenvolver.
Use facelets no lugar dos includes.
Está executando isso System.out.println("Login " + login); ?
Se tiver acho que o problema pode estar aqui.

<navigation-rule>

<from-view-id>/index.jsp</from-view-id>

<navigation-case>

<from-outcome>login</from-outcome>

<to-view-id>/jsp/login/index_mod.jsp</to-view-id>

</navigation-case>

</navigation-rule>

Ja tentou ver ser esse caminho está certo ?

<to-view-id>/jsp/login/index_mod.jsp</to-view-id>

Marcio_Nogueira

Sim, o caminho está correto, porém o bean não está sendo executado.
Quanto ao javascript na página, esta é uma página antiga, desenvolvida por outra empresa e que não temos liberdade para alterar ou corrigir.

Flavio_machine

Faz uma cópia da página para teste, retira o código que não está envolvido no problema.

Marcio_Nogueira

Mesmo com o javascript a página funcionava sem problemas, o bean parou de responder de uma hora para outra.

Flavio_machine

Isso vai isolar o problema.

Marcio_Nogueira

Vou tentar fazer as alterações sugeridas, depois posto o resultado.

Marcio_Nogueira

Mesmo com as alterações, o bean se recusa a dar sinal de vida. :oops:

Criado 28 de fevereiro de 2011
Ultima resposta 28 de fev. de 2011
Respostas 9
Participantes 3