Olá, estou com o seguinte problema, o pessoal da Infraestrutura está querendo fazer uma migração do glasfish 3.0, que é o que roda atualmente a aplicação para o glasfish 3.1 (justificam que da pra clusterizar e fazer algumas outras coisas que a 3.0 não permite). O problema é, essa nova versão não suporta a anotação @KeepAlive, e praticamente todas as telas desse sistema rodam sobre um bean keepalive.
Tentei fazer a migração do bean de @RequestScopes para @ViewScoped (e tirar a anotação @KeepAlive) porém não obtive muito sucesso.
O drama é, por exemplo, tenho uma tabela e quero editar um dos elementos dessa tabela, faço o seguinte:
<a4j:commandButton image="../resources/img/edit.png"
title="Editar Registro"
limitToList="true" reRender="edit-dados"
action="#{assistenteSocialBean.pegaAssistente(assistente)}"
oncomplete="javascript:Richfaces.showModalPanel('modal-edit')"/>
o a4j:commandButton assina em meu Bean um objeto (assistenteSocial) que mantenho na tela para a edição, no oncomplete da ação mando renderizar um pop-up que conterá esse objeto para a edição:
[code]
<rich:modalPanel id=“modal-edit” autosized=“true”>
<f:facet name=“header”>
<h:panelGroup>
<h:outputText value=“Editar Assistente Social” />
</h:panelGroup>
</f:facet>
<f:facet name=“controls”>
<h:panelGroup>
<h:graphicImage value="…/resources/img/close.png" id=“hidelink2” style=“margin: 1px;”/>
<rich:componentControl for=“modal-edit” attachTo=“hidelink2” operation=“hide” event=“onclick”/>
</h:panelGroup>
</f:facet>
<a4j:form id=“edit-dados”>
<h:panelGrid columns=“2” styleClass=“grid-cadastro”>
<h:outputLabel value=“Nome: " for=“nome2” styleClass=“label”/>
<h:inputText id=“nome2” value=”#{assistenteSocialBean.assistenteSocial.nome}" styleClass=“campo-texto”
disabled=“true”/>
<h:outputLabel value="Tel. Contato: " for="tel-cont2" styleClass="label"/>
<h:inputText id="tel-cont2" value="#{assistenteSocialBean.assistenteSocial.foneContato}" styleClass="campo-texto telMask" onfocus="telMask()" />
<h:outputLabel value="E-mail: " for="e-mail2" styleClass="label"/>
<h:inputText id="e-mail2" value="#{assistenteSocialBean.assistenteSocial.eMail}" styleClass="campo-texto"/>
</h:panelGrid>
<a4j:commandButton value="Editar Dados" oncomplete="javascript:Richfaces.hideModalPanel('modal-edit'); #{assistenteSocialBean.funcao}"
action="#{assistenteSocialBean.editarAssistente}"
limitToList="true" reRender="tabela"/>
</a4j:form>
</rich:modalPanel>[/code]
Até ai tudo bem, tudo funcionou perfeitamente como se estivesse com o @KeepAlive (inclusive os dados são mostrados corretamente no pop-up), porém, quando dou o comando da ação de edição, esse objeto “assistenteSocial” já não existe mais, seu valor se encontra null.
Alguém já passou por problema semelhante? ou está tendo que migrar alguma aplicação em richfaces 3.3 para a nova versão do glassfish e está tendo dificuldade?
Alguma idéia do que fazer para funcionar sem @KeepAlive?