Eu consegui fazer um método que gera o relatório e cria o PDF, mas não estou conseguindo com que o aparece a janela de download no browser.
public String gerarRelatorio(){
try{
Session session=HibernateUtil.openSession();
HashMap mapa=new HashMap();
HttpServletResponse response = null;
Date inicio = new Date("2010/10/01");
mapa.put("DATA_INICIO",inicio);
Date fim = new Date("2010/12/31");
mapa.put("DATA_FIM",fim);
JasperReport pathjrxml = JasperCompileManager.compileReport("C:/Users/usuario/Desktop/usuario/TCC/eclipse lomax/workspace/Lomax3/relatorios/VendasMensal.jrxml");
JasperPrint printReport = JasperFillManager.fillReport(pathjrxml,mapa,session.connection());
JasperExportManager.exportReportToPdfFile(printReport, "C:/Users/usuario/Desktop/usuario/TCC/eclipse lomax/workspace/Lomax3/relatorios/VendasMensal.pdf");
byte[] dados= JasperExportManager.exportReportToPdf(printReport);
session.close();
response.setContentType("application/pdf");
ServletOutputStream saida = response.getOutputStream();
saida.write(dados);
saida.flush();
saida.close();
}catch(Exception e){
e.printStackTrace();
}
return SUCCESS;
}
Estou usando Struts2 e como vcs puderam ver não há passagem de parâmetros no método para HttpServletRequest request e HttpServletResponse response, não sei se isso é possivel com o struts2, tentei fazer um response com null e não está dando certo.
Outra coisa tb que n estou conseguindo fazer é definir um path para o relatório que não precise colocar todo o diretório completo, eu posso usar esse código em outros computadores e com certeza não terão paths iguais. como corrigir isso?