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? :?:
poste os códigos
Segue o faces-config:
[code]<?xml version="1.0" encoding="UTF-8"?>
loginBean controle.LoginBean session<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>
[/code]
o bean:
[code]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();
}
}
}[/code]
a index, onde a chamada ao bean é feita:
[code]<%@ 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”);
%>
<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 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" /> 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" /> 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" /> 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"> </td>
<td colspan="2" width="255" height="64"> </td>
</tr>
<tr>
<td> </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> </td>
<td class="textoFormulario">
<label for="nome">Usuá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> </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" />
<h:commandButton type="submit" id="botaoEntrar" value="Entrar" action="#{loginBean.doLogin}"/>
</td>
</tr>
<tr>
<td align="center"> </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>
[/code]
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>
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.
Faz uma cópia da página para teste, retira o código que não está envolvido no problema.
Mesmo com o javascript a página funcionava sem problemas, o bean parou de responder de uma hora para outra.
Isso vai isolar o problema.
Vou tentar fazer as alterações sugeridas, depois posto o resultado.
Mesmo com as alterações, o bean se recusa a dar sinal de vida. :oops: