ConversationScoped executando o postConstruct várias vezes?

Olá gangue,

Eu tenho um managed bean que executa o “conversation.begin()” no PostConstruct e “conversation.end()” no momento que eu termino de cadastrar meu objeto (está no local correto - usava sessionScoped e estou tentando migrar para ConversationScoped)

O problema é que o postConstruct está sendo executado toda hora que eu altero um componente usando ajax, causando validation error (o ajax preenche uma lista dinamicamente). Verifiquei que o método anotado com postConstruct está sendo executado várias vezes e não uma vez a cada início de conversa, como eu esperava.

Alguém sabe como poderemos resolver isso?

Bom dia amigos.

Estou com o mesmo problema.
Alguém já passou por isso?

Abraços.

Estou com o mesmo problema.
E pra piorar, na segunda requisição pro mesmo Bean, o @Inject tá injentando uma Conversation nova, não aquela que eu tinha iniciado no request anterior.

Opa galera
Altere o web.xml, ou seja inclua o codigo abaixo:

javax.faces.PARTIAL_STATE_SAVING false

Opa mascurco,
isso vai ajudar o Bean a não ser “construido” de novo?

Sim amigo.
O escopo de View funciona legal.

O de View até que não tive problemas,
mas e o de Conversation?

Com este escopo ainda não testei…
Faça o teste e nos fala depois.

Abraços.

se não der certo, segue abaixo umas soluções interessantes:

tem um cara comentando que “startar” a Conversation no @PostConstruct não é mto interessante, e dá um exemplo utilizando <f:event> e <s:viewAction>

mais tarde vou tentar essas paradas,
dps posto pra dizer o que rolou.

Obrigado
Abraços

Depois de algumas pesquisas, vi que o grande problema é que estávamos perdendo o ID da Conversation.
Nós precisamos propagar o Conversation ID nos submits.

por ex:
<h:commandButton value=“Salvar”>
<f:param name=“cid” value="#{conversation.id}" />
<f:ajax execute="@form" render="@form" />
</h:commandButton>

Imaginando que esse submit irá para o mesmo Managed Bean, ele só vai executar o @PostConstruct na primeira vez que carregou a tela.