Problemas com Ireport no Vraptor

1 resposta
diogoprosoft

Galera ja fiz relatorios com struts porem agora houve a necessidade de gerar relatorio atraves do vraptor mais nao estou conseguindo aplicar o codigo que eu tinha feito no outro sistema, esta dando erro de referencia ao metodo. O codigo é esse:

A linha que esta com problema é essa:

String pathJasper = getServlet().getServletContext().getRealPath("/ireport/") + "/";      

Erro de referencia no getServlet();
RamalService ramalService = new RamalService();
		List rsRamal = ramalService.selectRamalAll(ramal);					
		
		HttpServletResponse response;				
		
		String pathJasper = getServlet().getServletContext().getRealPath("/ireport/") + "/";        

        String path = getServlet().getServletContext().getRealPath("/");
        Map parametros = new HashMap();        
        
        parametros.put("SUBREPORT_DIR", pathJasper);        

        try {
            JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(rsRamal);
            JasperPrint impressao = JasperFillManager.fillReport(pathJasper +"/ramal.jasper", parametros, ds);

            if(impressao.getPages().isEmpty()){
                
                
            }else{
                byte[] bytes = JasperExportManager.exportReportToPdf(impressao);
                byte[] arquivo = bytes;
                String nomeDoArquivo = "Demonstrativo_Mensal_Parcelas_p_Contrato.pdf";
                response.setContentType("application/x-msdownload");
                response.setHeader("Content-Disposition", "attachment; filename=".concat(nomeDoArquivo));
                response.setContentLength(arquivo.length);
                ServletOutputStream sos = response.getOutputStream();
                sos.write(arquivo, 0, arquivo.length);
                sos.flush();
                sos.close();
               
            }
        } catch (Exception e) {
            if (e.getClass().getSimpleName().equals("ClientAbortException")) {               
            } else {
                System.out.println("Outros");
            }
        }

1 Resposta

renanreismartins

meio tarde a resposta mas ta valendo

coloque como atributo do seu logic:

@In
private ServletContext servletContext;

e entao no seu metodo faça:

... servletContext.getRealPath(....)...;

abraços

Criado 27 de março de 2009
Ultima resposta 14 de abr. de 2009
Respostas 1
Participantes 2