Primefaces Framework em jsf

Bom dia pessoal.

Tenho um Dialog Framework do primefaces que está 100%, porém eu qro adicionar outro e esse segundo abre, mas ao selecionar o que preciso dá erro de Method not found.

Segue os códidos:

Bean:

public void selectOcupacaoFromDialog(LocalidadeOcupacao localidadeocupacao) {
    RequestContext.getCurrentInstance().closeDialog(localidadeocupacao);
}

public void chooseOcupacao() {
    Map<String, Object> option = new HashMap<>();
    option.put("modal", true);
    option.put("width", 640);
    option.put("height", 340);
    option.put("contentWidth", "100%");
    option.put("contentHeight", "100%");
    option.put("headerElement", "customheader");
    option.put("id", "selectTableOcupacao");
    option.put("widgetVar", "selectTableOcupacao");
    RequestContext.getCurrentInstance().openDialog("selectTableOcupacao", option, null);
}

public void onOcupacaoChosen(SelectEvent event) {
    LocalidadeOcupacao p = (LocalidadeOcupacao) event.getObject();
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, "Ocupação", "número:" + p.getCo_ocupacao());

    lo.setCo_ocupacao(p.getCo_ocupacao());

    FacesContext.getCurrentInstance().addMessage(null, message);
}

Xhtml

<p:outputLabel value="Ocupação"  />
                                        <p:panel class="noborder">
                                            <p:inputText id="co_cbo_ocupacao" value="#{sinanNotificacaoBean.sn.co_cbo_ocupacao}" />
                                            <p:commandButton icon="fa fa-fw fa-search" actionListener="#{localidadeOcupacaoBean.chooseOcupacao}">
                                                <p:ajax event="dialogReturn" listener="#{localidadeOcupacaoBean.onOcupacaoChosen}" 
                                                        update="mensagem" />
                                            </p:commandButton>
                                        </p:panel>

e aqui o Dialog com o DataTable onde seleciono os dados.

<h:body>
        <i id="customheader" class="fa fa-fw fa-filter" style="display:none"></i>
        <h:form>
            <p:dataTable rows="5" paginator="true" value="#{localidadeOcupacaoBean.list}" var="x">
                <p:column headerText="Id">
                    <h:outputText value="#{x.co_ocupacao}" />
                </p:column>

                <p:column headerText="Nome" filterBy="#{x.ds_ocupacao}" >
                    <h:outputText value="#{x.ds_ocupacao}" />
                </p:column>

                <p:column style="width:32px;text-align: center">
                    <p:commandButton icon="ui-icon-search" actionListener="#{localidadeOcupacaoBean.onOcupacaoChosen(x)}" />
                </p:column>
            </p:dataTable>
        </h:form>
    </h:body>

ERRO:

19-May-2017 10:22:05.050 WARNING [http-nio-8084-exec-43] com.sun.faces.lifecycle.InvokeApplicationPhase.execute Method not found: sinomp.beans.LocalidadeOcupacaoBean@e349cc7.onOcupacaoChosen(sinomp.entidades.LocalidadeOcupacao)
 javax.el.MethodNotFoundException: Method not found: sinomp.beans.LocalidadeOcupacaoBean@e349cc7.onOcupacaoChosen(sinomp.entidades.LocalidadeOcupacao)

alguém pode dar uma olhada pra ver se encontra o que detalhe que ta faltando?

Valeu…

Qual o escopo do seu Bean?

a função onOcupacaoChosen espera um evento e não o objeto da lista, crie do mesmo jeito que vc fez no listener do ajax, assim:

   <p:commandButton icon="ui-icon-search" actionListener="#{localidadeOcupacaoBean.onOcupacaoChosen}" />

outra coisa um botão não precisa de um ajax pois ele já tem uma ação, no bean dependendo do seu escopo e da versão do primefaces ele vai muitas veses no bean…fica a dica

Pessoal, valeu pela ajuda a todos, descobri o erro, era pura cegueira minha, pois verifiquei esse código umas 10x desde ontem à noite.

segue a solução:

Troquei esse:
<p:commandButton icon="ui-icon-search" actionListener="#{localidadeOcupacaoBean.onOcupacaoChosen(x)}" />

Por esse:

<p:commandButton icon="ui-icon-search" actionListener="#{localidadeOcupacaoBean.selectOcupacaoFromDialog(x)}" />

Valeu pessoal