Olá, estava fazendo a parte de Login do meu sistema, quando fui implementar uma Autenticação com PhaseListener deu o seguinte erro:
Depois da Fase:RESTORE_VIEW 1
Depois da Fase:RESTORE_VIEW 1
mai 04, 2015 10:37:52 PM org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet [Faces Servlet] in context with path [/TesteTCC2] threw exception [null] with root cause
java.lang.NullPointerException
at br.com.teste.tcc.listener.Autorizador.afterPhase(Autorizador.java:27)
at com.sun.faces.lifecycle.Phase.handleAfterPhase(Phase.java:189)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:107)
at com.sun.faces.lifecycle.RestoreViewPhase.doPhase(RestoreViewPhase.java:121)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:610)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:516)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1086)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:659)
at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:223)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1558)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1515)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
Aqui segue minha classe Autorizador
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;
import javax.inject.Inject;
import br.com.teste.tcc.mb.UsuarioLogadoBean;
public class Autorizador implements PhaseListener {
private static final long serialVersionUID = 1L;
@Inject
private UsuarioLogadoBean usuarioLogado;
public void afterPhase(PhaseEvent event) {
FacesContext context = event.getFacesContext();
if("/login.xhtml".equals(context.getViewRoot().getViewId())){
return;
}
//Usando o usuarioLogado que foi injetado //Verificação
if(!usuarioLogado.isLogado()){
NavigationHandler handler = context.getApplication().getNavigationHandler();
handler.handleNavigation(context, null, "login?faces-redirect=true");
//Efetua renderização da tela
context.renderResponse();
}
}
public void beforePhase(PhaseEvent event) {
// TODO Auto-generated method stub
}
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}
Se alguém ai puder me dar um Help!