[Resolvido] Ajax Poll do Primefaces [Urgente!]

2 respostas
F

Pessoal! estou utilizando o componente <p:poll> do Primefaces para atualizar um dialog de segundo em segundo a fim de mostrar o meu progresso na fatura de boletos:,
O problema é que… ao iniciar o metodo que faz o faturamento dos boletos ele interrompe o <p:poll>

segue a seguir o dialog e os códigos:

index.xhtml - onde escrevo o dialogo com o p:poll e crio a barra de progresso

<p:poll interval="1"
                                listener="#{faturaContratosMB.calculaProcesso}"
                                update="total_faturado, total_contratos"
                                widgetVar="poll"
                                autoStart="true"/>
                        
                        <p:progressBar widgetVar="barra"
                                       style="width: 550px;"
                                       ajax="true"
                                       value="#{faturaContratosMB.progresso}"
                                       interval="100"/>

                        <div style="text-align: center; width: 550px;">
                            <h:outputLabel value="#{faturaContratosMB.total_contratos_faturados}" id="total_faturado"/>
                            <h:outputLabel value="de" />
                            <h:outputLabel value="#{faturaContratosMB.total_contratos}" id="total_contratos"/>
                        </div>

FaturaContratosMB - onde eu calculo as faturas e as porcentagens

public String calculaProcesso() {
        total_contratos = GeraFatura.getTotal_contratos();
        total_contratos_faturados = GeraFatura.getTotal_contratos_processados();
        if (total_contratos != 0) {
            Progresso = 100 * (total_contratos_faturados / total_contratos);
        } else {
            Progresso = 0;
        }
        System.out.println("total" + total_contratos);
        return null;
    }

public String faturandoContratos() {
        GeraFatura geraFatura = new GeraFatura();
        geraFatura.setEstab(estabelecimento);
        new Thread(new pegaValores()).start();
        geraFatura.faturaContratos();
        return null;
    }

e até criei uma thread no FaturaContratosMB vejam

class pegaValores extends Thread {

        @Override
        public void run() {
            while (Progresso < 100) {
                total_contratos = GeraFatura.getTotal_contratos();
                total_contratos_faturados = GeraFatura.getTotal_contratos_processados();
                /*System.out.println("Total Contrato: " + total_contratos);
                System.out.println("Total Contrato Faturado: " + total_contratos);
                if (total_contratos == 0) {
                    Progresso = 0;
                } else {
                    Progresso = 100 * (total_contratos_faturados / total_contratos);
                }*/
                try {
                    sleep(400);
                } catch (InterruptedException ex) {
                    Logger.getLogger(FaturaContratosMB.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        }
    }

Alguém pode me ajudar?
flw… :stuck_out_tongue:

2 Respostas

F

Faltou alguma informação?

F

Resolvido…

Criado 19 de abril de 2011
Ultima resposta 20 de abr. de 2011
Respostas 2
Participantes 1