Estou desenvolvendo uma aplicação e com alguns métodos asyncronos, onde estou utilizando o seguinte código.
public void gerar() {
if (dataInicial == null || dataFinal == null) {
addGlobalErrorMessage(MessageUtils.getMessage("relatorios.numeroDaSorte.erro.periodo.naoPreenchido"));
return;
}
if (dataInicial.getTime() > dataFinal.getTime()) {
addGlobalErrorMessage(MessageUtils.getMessage("relatorios.numeroDaSorte.erro.periodo.inicioMaiorFim"));
return;
}
List<ParametroValor> parametroValor = this.parametroValorBean.buscarPorProcesso(PROCESSO);;
String dir = parametroValor.get(0).getValor();
if(dir == null || StringUtils.isBlank(dir)) {
addGlobalErrorMessage(MessageUtils.getMessage("relatorios.numeroDaSorte.erro.diretorioRelatorio"));
return;
}
List<NumeroDaSorteRelatorioAnaliticoVO> dadosRelatorio = numeroDaSorteIntegration
.obterDadosRelatorioAnalitico(dataInicial, dataFinal);
if (dadosRelatorio == null || dadosRelatorio.isEmpty()) {
addGlobalInfoMessage(MessageUtils.getMessage("global.nao.foram.encontratos.registros"));
return;
}
try {
DownloadRelatorioNroSorte download = new DownloadRelatorioNroSorte(dadosRelatorio, dir);
threadPool.execute(download);
addGlobalInfoMessage(MessageUtils.getMessage("relatorios.numeroDaSorte.solicitado"));
} catch (Exception e) {
logger.error("Erro ao gerar o relatorio.", e);
addGlobalErrorMessage(MessageUtils.getMessage("relatorios.numeroDaSorte.erro.gerar"));
}
}
Quando o download terminar, quero notificar a tela do usuário, tentei de diversas formas e não consegui (facescontext entre outros).