En un bean @ConversationScoped de Seam 3, me llamó la atención que el método anotado @PostConstruct era invocado cada vez que hacía submit a un <a4j:commandButton cuando lo esperable era que se mantuviese la conversación por lo menos hasta el timeout.

Según uno de los posts más visitidaos de StackOverflow >> esto podía deberse a que la llamada Ajax no incluía como parámetro el id de conversación, por tanto Seam lo interpretaba como que debía iniciar una nueva. Pero no decía cómo. En la documentación hay una sección de propagación de conversaciones >>, donde se dice que  la conversación no se propaga automáticamente en request que no sean de JSF, como links (y, asumamos, llamadas a Ajax).

Efectivamente ésto resolvió el problema:

<a4j:commandButton value="boton" action="#{bean.accion}">
<f:param name="cid" value="#{javax.enterprise.context.conversation.id}"/>
</a4j:commandButton>
Este sitio utiliza cookies.    Leer más