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… 

