Estoy usando JSF 2.0 con GlassFish 3.0.Método @PostConstruct llamado dos veces para la misma solicitud
Tengo el siguiente Managed Bean:
@ManagedBean
@RequestScoped
public class OverviewController{
private List<Event> eventList;
@PostConstruct
public void init(){
System.out.println("=> OverviewController - init() - enter");
System.out.println("=< OverviewController - init() - exit");
}
}
Desde el archivo de overview.xhtml Voy a llamar a diferentes atributos o métodos de mi OverviewController.
<ui:repeat var="event" value="#{overviewController.eventList}">
...
</ui:repeat>
Todo funciona muy bien, pero el problema está en el archivo de registro:
INFO: Enter : RESTORE_VIEW 1
INFO: Exit : RESTORE_VIEW 1
INFO: Enter : RENDER_RESPONSE 6
INFO: => OverviewController - init() - enter
INFO: => Overview Controller - updateSelectedTab() - enter
INFO: =< Overview Controller - updateSelectedTab() - exit
INFO: =< OverviewController - init() - exit
INFO: => OverviewController - init() - enter
INFO: => Overview Controller - updateSelectedTab() - enter
INFO: =< Overview Controller - updateSelectedTab() - exit
INFO: =< OverviewController - init() - exit
INFO: Exit : RENDER_RESPONSE 6
Como se puede ver, el método init() se llama dos veces en la misma petición por ninguna razón que lo que nunca . Por lo que sé, cualquier método anotado con PostConstruct se llama una vez por cada solicitud. ¿Me equivoco?
EDITAR: No AJAX se utiliza en la página. Comprobé el número de solicitudes con Firebug. Hay peticiones hechas de árboles:
- 1.One para la javax.faces.resource (GET)
- 2.One para el archivo css (GET)
- 3.One de vista general .xhtml (GET)
¿Estás decir ClassFish o GlassFish? – Kushan
@Kushan GlassFish – Ionut
¿Está realizando alguna llamada Ajax? Use FireBug o un complemento similar para averiguar cuántas solicitudes realiza realmente el navegador. – MrKiane