Pessoal,
Alguém sabe como posso enviar dados para o browser cliente enquanto faço um processamento em meu Servlet? Já tentei o PrintWriter.flush() e o Response.flushBuffer().
Aí vai a forma que eu estou utilizando.
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
if ("Iniciar".equals(request.getParameter("iniciar"))) {
if (!this.continuar) {
this.continuar = true;
} else if (!this.executando) {
out.println("Iniciando integração dos dados...");
out.flush();
HttpSession sessao = request.getSession();
Usuario usuarioLogado = (Usuario) sessao
.getAttribute("usuarioLogado");
String siglaUnidade = usuarioLogado.getUnidade().getSigla();
realizarIntegracoes(siglaUnidade);
}
} else if ("Parar".equals(request.getParameter("parar"))) {
this.continuar = false;
out.println("Parando integração dos dados...");
out.flush();
}
}
private void realizarIntegracoes(String siglaUnidade) {
this.executando = true;
while (this.continuar) {
enviarNaoIntegrados(siglaUnidade);
buscarNaoIntegrados(siglaUnidade);
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
this.executando = false;
}
Agradeço antecipadamente qualquer ajuda,
Petrus Bastos.