Boa Tarde Pessoal, eu estou com problema com minha tela de controle de seção de login…
Alguem pode me ajudar?
na hora que eu digito o usuario e senha e aperto enter ocorre o seguinte erro:
beforePhase
Dez 05, 2011 1:45:48 PM org.apache.catalina.core.StandardWrapperValve invoke
Grave: Servlet.service() for servlet [Faces Servlet] in context with path [/TesteTomCat] threw exception [viewId:/html/pages/login.xhtml - A exibição de /html/pages/login.xhtml não pôde ser restaurada.] with root cause
javax.faces.application.ViewExpiredException: viewId:/html/pages/login.xhtml - A exibição de /html/pages/login.xhtml não pôde ser restaurada.
at com.sun.faces.lifecycle.RestoreViewPhase.execute(RestoreViewPhase.java:205)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:116)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:593)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:405)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Alguem sabe o que pode ser?
Segue as informacoes:
WebXml
<lifecycle>
<phase-listener>br.com.dsc.controller.Autorizador</phase-listener>
</lifecycle>
Autorizador :
package br.com.dsc.controller;
import javax.el.ELResolver;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
public class Autorizador implements PhaseListener {
private static final long serialVersionUID = 1L;
private static final String loginPage = "/html/pages/login.xhtm";
public void afterPhase(PhaseEvent event) {
FacesContext fc = event.getFacesContext();
if (fc.getViewRoot().getViewId().equals(loginPage)) {
return;
}
ELResolver elr = fc.getApplication().getELResolver();
LoginController login = (LoginController)elr.getValue(fc.getELContext(), null, "autenticador");
if ((login == null || !login.isLogado()) ) {
//logger.info("Funcionário não está logado!");
NavigationHandler nav = fc.getApplication().getNavigationHandler();
nav.handleNavigation(fc, null, "login");
fc.renderResponse();
}
}
public void beforePhase(PhaseEvent event) {
System.err.println("beforePhase");
}
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}
loginController
package br.com.dsc.controller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import br.com.dsc.entity.Usuarios;
import br.com.dsc.controller.UsuariosController;
@Controller
@Qualifier("loginController")
public class LoginController {
@Autowired
private UsuariosController controller;
private final Log logger = LogFactory.getLog(getClass());
private String login;
private String senha;
private boolean logado = false;
/**
* @return logado
*/
public boolean isLogado(){
return logado;
}
/**
* @param logado boolean
*/
public void setLogado(boolean logado) {
this.logado = logado;
}
/**
* @return login
*/
public String getLogin() {
return login;
}
/**
* @param login String
*/
public void setLogin(String login) {
logger.info("Mudando o login para: " + login);
this.login = login;
}
/**
* @return senha
*/
public String getSenha() {
return senha;
}
/**
* @param senha String
*/
public void setSenha(String senha) {
this.senha = senha;
}
/**
* Efetua o login do usuário.
* @return "sucesso" || "erro" - String
*/
public String logar() {
final Usuarios usuarios = controller.pesquisar(login);
if (("admin".equals(this.login) && "admin".equals(this.senha))||
(usuarios.getEmail().equals(this.login) && usuarios.getSecoes().equals(this.senha))) {
logger.info("Usuario logado com sucesso!!! ");
this.logado = true;
return "sucesso";
} else {
logger.info("Não foi possível autenticar o Usuario!!!");
this.logado = false;
return "erro";
}
}
/**
* Efetua o logoff do usuário.
* @return "sucesso"
*/
public String deslogar() {
if (this.logado) {
logger.info("Funcionário deslogado com sucesso!!! ");
this.logado = false;
}
return "sucesso";
}
}
usuariosController
[code]package br.com.dsc.controller;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import br.com.dsc.entity.Usuarios;
import br.com.dsc.service.IUsuarioService;
@Controller
@Qualifier(“usuariosController”)
public class UsuariosController {
private final Log logger = LogFactory.getLog(getClass());
@Autowired
private IUsuarioService iUsuarioService;
// Variaveis de controle
private List<Usuarios> listaUsuarios;
private Usuarios selectedUsuarios;
private boolean editMode;
public UsuariosController(){
selectedUsuarios = new Usuarios();
}
/* ==================Funcionalidades ================================== */
private Usuarios copiarDadosTela(final boolean zerarDadosTela) {
final Usuarios usuario = new Usuarios();
usuario.setId(getSelectedUsuarios().getId());
usuario.setNome(getSelectedUsuarios().getNome());
usuario.setEmail(getSelectedUsuarios().getEmail());
usuario.setSenha(getSelectedUsuarios().getSenha());
usuario.setDataNasc(getSelectedUsuarios().getDataNasc());
usuario.setEmpresa(getSelectedUsuarios().getEmpresa());
usuario.setCargo(getSelectedUsuarios().getCargo());
usuario.setCidade(getSelectedUsuarios().getCidade());
usuario.setEstado(getSelectedUsuarios().getEstado());
if (zerarDadosTela) {
this.zerarController();
}
return usuario;
}
public void excluir() {
logger.info("Controller excluir.");
final Usuarios usuario = this.copiarDadosTela(true);
this.iUsuarioService.excluir(usuario);
//this.listaUsuarios = this.iUsuarioService.getUsuarios();
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "DSC",
"Usuario excluido"));
}
public void inserir() {
logger.info("Controller inserir.");
final Usuarios usuario = this.copiarDadosTela(true);
this.iUsuarioService.incluir(usuario);
//this.listaUsuarios = this.iUsuarioService.getUsuarios();
}
public void atualizar() {
logger.info("Controller atualizar.");
final Usuarios usuario = this.copiarDadosTela(true);
//this.listaUsuarios = this.iUsuarioService.getUsuarios();
FacesContext.getCurrentInstance().addMessage(
null,
new FacesMessage(FacesMessage.SEVERITY_INFO, "DSC",
"Usuario Alterado"));
this.iUsuarioService.atualizar(usuario);
}
public void controla_metodo() {
if (this.editMode) {
atualizar();
} else {
inserir();
}
}
public Usuarios pesquisar(String email) {
logger.info("Controller atualizar.");
final Usuarios usuarios = this.iUsuarioService.pesquisarUsuarioPorEmail(email);
return usuarios;
}
public void zerarController() {
this.setSelectedUsuarios(new Usuarios());
}
/* =====================Gets e Sets===================================== */
public List<Usuarios> getListaUsuarios() {
return listaUsuarios;
}
public void setListaUsuarios(List<Usuarios> listaUsuarios) {
this.listaUsuarios = listaUsuarios;
}
public boolean isEditMode() {
return editMode;
}
public void setEditMode(boolean editMode) {
this.editMode = editMode;
}
public Usuarios getSelectedUsuarios() {
if (!this.editMode) {
zerarController();
}
selectedUsuarios = this.iUsuarioService.pesquisarPorId(1);
return selectedUsuarios;
}
public void setSelectedUsuarios(Usuarios selectedUsuarios) {
this.selectedUsuarios = selectedUsuarios;
}
}[/code]