Pessoal, coloquei um fase listener na minha aplicação mas ele só é chamado na fase RESTORE_VIEW. Mesmo depois que clico no botão da ação só entra nos métodos beforePhase e afterPhase na fase RESTORE_VIEW, enquanto as demais fases (APPLY_REQUEST_VALUES; PROCESS_EVENTS;, PROCESS_VALIDATIONS; UPDATE_MODEL_VALUES; INVOKE_APPLICATION; RENDER_RESPONSE) são ignoradas
<lifecycle>
<phase-listener>com.tracker.TrackerPhaseListener</phase-listener>
</lifecycle>
public class TrackerPhaseListener implements PhaseListener {
private PhaseId phaseId = PhaseId.ANY_PHASE;
public void setPhaseId(PhaseId phaseId) {
this.phaseId = phaseId;
}
/* (non-Javadoc)
* @see javax.faces.event.PhaseListener#getPhaseId()
*/
public PhaseId getPhaseId() {
return phaseId;
}
/**
*
*/
public TrackerPhaseListener() {}
/* (non-Javadoc)
* @see javax.faces.event.PhaseListener#afterPhase(javax.faces.event.PhaseEvent)
*/
public void afterPhase(PhaseEvent event) {
setPhaseId(event.getPhaseId());
FacesContext context=event.getFacesContext();
System.out.println(context.getViewRoot().getViewId());
System.out.println("After Phase " + event.getPhaseId());
}
/* (non-Javadoc)
* @see javax.faces.event.PhaseListener#beforePhase(javax.faces.event.PhaseEvent)
*/
public void beforePhase(PhaseEvent event) {
setPhaseId(event.getPhaseId());
System.out.println("bofore Phase " + event.getPhaseId());
}
}
Grato