Pessoal, estou utilizando JSF1.2 + seam para fazer uma aplicaçao e estou num ponto onde preciso gerar um .txt para download.
O código abaixo funciona perfeitamente para gerar o txt, mas o problema é o download que é demorado!
debugando o código, ele executa tudo e termina. Aí é apresentado a caixa de download do browser para o usuário. Quando clica em download, o download demora uns 20 segundos(tamanho de 308B).
quando termina, tá la o arquivo com com os dados corretos, mas o problema é a demora de download. To achando que é por conta desse ByteArrayOutputStream, mas não sei.
Alguma idéia?
private void generateTxt() {
try {
FacesContext facesContext = FacesContext.getCurrentInstance();
ByteArrayOutputStream output = new ByteArrayOutputStream();
output.write("teste".getBytes());
HttpServletResponse response = (HttpServletResponse) facesContext.getExternalContext().getResponse();
response.setContentType("text/html");
response.setHeader("Content-Disposition", "attachment;filename=teste.txt;");
response.setContentLength(output.toByteArray().length);
ServletOutputStream servletOutputStream;
servletOutputStream = response.getOutputStream();
servletOutputStream.write(output.toByteArray(), 0, output.toByteArray().length);
servletOutputStream.flush();
servletOutputStream.close();
FacesContext.getCurrentInstance().responseComplete();
} catch (IOException e) {
e.printStackTrace();
}
}