Gerar relatório em PDF (Jasper) sem gravar no disco

Olá amigos, estou tendo alguns problemas em gerar meu relatório, feito no iReport, em PDF.

A maneira que utilizei, gera um pdf no disco rígido do servidor e se o usuário tiver o plugin pra visualizar o PDF no browser, meu relatorio aparece dentro do browser ou é chamado a janelinha para download do memso. Até aí está perfeito! Ou melhor, quase…

O problema que está acontecendo é que o relatorio está sendo gravado no disco régido do servidor com o nome do relatório + a extensão pdf. Por exemplo: MeuRelatorio.pdf. Desta forma quando dois usuário tentam gerar o mesmo relatório porém com filtros diferentes, o sistema mostra sempre o ultimo pdf gerado no disco.

O que posso fazer pra resolver este problema?? Pensei em criar o arquivo pdf com um nome aleatorio ou algo assim pra não acontecer de um relatório sobrepor o outro, porém o problema é que eu precisaria remover estes arquivos depois prta não ficar com um monte de pdf “perdido” no servidor.

O que vcs acham melhor eu fazer? Este problema tem solução?

Abaixo, disponibilizei o código que gera o pdf.


...
String pathJasper = getServletContext().getRealPath("/WEB-INF/classes/br/com/dominio/relatorio/prestador/")+ "/";
String path = getServletContext().getRealPath("/");
JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "PrestadorRelatorio.jasper", parametros, ds);
JRPdfExporter exporter = new JRPdfExporter();
exporter.setParameter(JRExporterParameter.JASPER_PRINT, impressao);
exporter.setParameter(JRExporterParameter.OUTPUT_FILE_NAME, path + "PrestadorRelatorio.pdf");
exporter.exportReport();
res.sendRedirect("PrestadorRelatorio.pdf");
...

Veja se tem como gerar um array de bytes do arquivo sem gravá-lo no disco, e então usa um servlet para mandar esses bytes para a saída.

Olá David,
Muito obrigado pela atenção, mais… como eu poderia criar este array? Tu poderia me dar uma indicação de aonde e o quê procurar ?

Aqui tem um exemplo, no segundo post.

Grande Furutani…

Deu certinho, consegui gerar sem problemas… Ficou perfeito! Obrigado à todos…

Agora preciso gerar em XLS e imprimir direto para a impressora… POis tentando imprimir direto ele mostra a janela de impressao (para escolher a impressora) só no lado do servidor…

Acertando estes dois, ficará muito jóia meu relatório, posso até disponibilizar os fontes aqui…

+)