Tengo una aplicacion hecha con JAVA5 que corre sobre un tomcat7, estoy haciendo mejoras pero uso primafaces y jsf2.2
Todo funciona menos el phaselistener, hice una prueba "tonta" de poner que el phaselistener antes de hacerme el render me rediriga a otra pagina para ver si anda y no funciona.
Estoy bastante perdido, en una aplicacion que tengo (hecha 100% por mi) usando java8 y jboss hago lo mismo pero funciona a la perfeccion.
Mi faces-config
Código Java:
Ver original<?xml version='1.0' encoding='UTF-8'?>
<faces-config version="2.2"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd">
<lifecycle>
<phase-listener>services.mylistener </phase-listener>
</lifecycle>
</faces-config>
El codigo del listener
Código Java:
Ver original@Override
public void afterPhase(PhaseEvent event) {
//Primero obtengo el contexto
FacesContext facesContext = event.getFacesContext();
NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
nh.handleNavigation(facesContext, null, "http://google.com");
}
@Override
public void beforePhase(PhaseEvent event) {
/
FacesContext facesContext = event.getFacesContext();
NavigationHandler nh = facesContext.getApplication().getNavigationHandler();
nh.handleNavigation(facesContext, null, "http://google.com");
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RENDER_RESPONSE;
}
Mi web.xml
Código Java:
Ver original<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.xhtml</url-pattern>
</servlet-mapping>