Download de txt demorado + JSF/Seam

0 respostas
tiagoemerick

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();
		}
	}
Criado 1 de fevereiro de 2011
Respostas 0
Participantes 1