a4j:commandButton não funcionar com request e a4j:keepalive

Fala povo (do bem :lol: ).

No meu projeto web(jsf), tenho alguns cadastros baseados em uma template ai fica a listagem em uma aba e edição/adição em outra,
os meus managed-beans estavam todos como session ai resolvi passá-los para request então, configurei o faces-config, implementei a
interface Serializable e coloquei o a:keepAlive para meu bean ai acontece o seguinte:

quando entro na página vai para a aba de listagem clico em um link para ir para a aba de inserção, coloco os dados, porem, quando clico no a4j:commandButton nada acontece(nem vai para a outra aba, nem executa o bean(inserir)),

alguem pode me ajudar?? :?:
faces-config:


	<managed-bean>
		<managed-bean-name>funcionalidadeCrudBean</managed-bean-name>
		<managed-bean-class>
			br.com.extranet.web.acesso.FuncionalidadeCrudBean
		</managed-bean-class>
		<managed-bean-scope>request</managed-bean-scope>
	</managed-bean>

FuncionalidadeCrudBean

public class FuncionalidadeCrudBean extends DefaultCrud implements Serializable {

	private static final long serialVersionUID = -6219733732611724843L;

	public void adicionar() {

		Ejbs.getFuncionalidadeBean().adicionar(funcionalidade);
		initFuncionalidade();
		selecionarTabListagem();
		FacesUtil.addInfoMessage("Salvo com sucesso");
	}
//demais métodos e propriedades
}

funcionalidade.xhtml

	<ui:composition template="/paginas/templates/crudTab.xhtml">
	
		<!-- passa parâmetro para o template -->  
	    <ui:param name="defaultBean" value="#{funcionalidadeCrudBean}" />
   
	    <ui:define name="blocoListagem">
	    
			<a4j:keepAlive beanName="funcionalidadeCrudBean"/>
			<a4j:commandLink value="#{msg.botaoAdicionar}" action="#{funcionalidadeCrudBean.prepararAdicao}" reRender="tabPanelCrud" />
			
			<rich:dataTable value="#{funcionalidadeCrudBean.funcionalidades}" var="funcionalidade" style="width:100%">
				<f:facet name="header">
			 		<rich:columnGroup>
			 			<rich:column>
			 				<h:outputText value="Nome"/>
			 			<rich:column>
			 				<h:outputText value="#{msg.botaoEditar} / #{msg.botaoExcluir}"/>
			 			</rich:column>
			 		</rich:columnGroup>
			 	</f:facet>
					
				<rich:column width="150">
					<h:outputText value="#{funcionalidade.nome}" />
				<rich:column width="90">
					<a4j:commandLink value="#{msg.botaoEditar}" action="#{funcionalidadeCrudBean.prepararEdicao}" reRender="tabPanelCrud" >
						<f:param value="#{funcionalidade.codigo}" name="paramCodigo"/>
					</a4j:commandLink>
					<h:outputText value="   /   " />
					<a4j:commandLink value="#{msg.botaoExcluir}" action="#{funcionalidadeCrudBean.excluir}" reRender="tabPanelCrud" 
								     onclick="if (!confirm('Deseja excluir esta Funcionalidade(#{funcionalidade.nome})?')) return false;">
						<f:param value="#{funcionalidade.codigo}" name="paramCodigo"/>
					</a4j:commandLink>
				</rich:column>
			</rich:dataTable>
	    </ui:define>
	   
	    <ui:define name="blocoEdicao">  
	        <h:panelGrid columns="2" id="panel2" columnClasses="odd-row,even-row">  
	            <h:outputLabel value="Nome " />  
                <h:inputText value="#{funcionalidadeCrudBean.funcionalidade.nome}" size="30" required="true" label="Nome" maxlength="50"/>
	        
	            <h:outputLabel value="Descrição " />  
                <h:inputTextarea value="#{funcionalidadeCrudBean.funcionalidade.descricao}" required="true" label="Descrição" />  

	            <h:outputLabel value="Módulo " />
				<h:selectOneListbox value="#{funcionalidadeCrudBean.funcionalidade.modulo.codigo}" size="1" required="true" label="Módulo" id="modulo">
					<f:selectItems value="#{funcionalidadeCrudBean.listaModulos}"/>
				</h:selectOneListbox>

		        <a4j:commandButton value="#{msg.botaoSalvar}" action="#{funcionalidadeCrudBean.adicionar}" reRender="tabPanelCrud" rendered="#{funcionalidadeCrudBean.navegacao.adicionarState}" styleClass="botao"/>
		        <a4j:commandButton value="#{msg.botaoSalvar}" action="#{funcionalidadeCrudBean.editar}"    reRender="tabPanelCrud" rendered="#{funcionalidadeCrudBean.navegacao.editarState}" styleClass="botao"/>
				<a4j:commandButton value="#{msg.botaoListar}" action="#{funcionalidadeCrudBean.listar}"    reRender="tabPanelCrud" immediate="true" styleClass="botao"/>
	        </h:panelGrid>
			<h:messages showDetail="true" showSummary="false" />
		</ui:define>
	</ui:composition>

crudTab.xhtml

		<ui:define name="corpo">
    		
			<a4j:form>
				<a4j:jsFunction name="atualizarTabPanel" reRender="tabPanelCrud"/>
			</a4j:form>
		    <rich:tabPanel switchType="ajax" selectedTab="#{defaultBean.tabSelecionada}" id="tabPanelCrud">
		        <!-- bloco de pesquisa -->
		        <rich:tab label="#{defaultBean.labelTabListagem}" id="tabListagem" action="#{defaultBean.selecionarTabListagem}" immediate="true">
					<a4j:form id="formPesquisa">
			            <ui:insert name="blocoListagem">
				            Tab de Listagem #1
			            </ui:insert>
					</a4j:form>
		        </rich:tab>
		        <!-- bloco de edição -->
		        <rich:tab label="#{defaultBean.labelTabEdicao}" id="tabEdicao" action="#{defaultBean.selecionarTabEdicao}" immediate="true">
					<a4j:form id="formCadEdit">
			            <ui:insert name="blocoEdicao">
				            Tab de Edição #2
			            </ui:insert>
					</a4j:form>
		        </rich:tab>
		    </rich:tabPanel>
		</ui:define>

:!: valew pela ajuda :!:

já tentou colocar ajaxSingle=“true” no seu a4jj:commandButton?

abraço!

[quote=danielfigueiredoc]já tentou colocar ajaxSingle=“true” no seu a4jj:commandButton?

abraço![/quote]

Fala Daniel, como eu não obtive resposta para esta mina dúvida, mudei de estratégia.

Assim que surgir uma oportunidade eu testo e posto aqui…

valew :smiley: