Vraptor + IReport

1 resposta
F

Galera, tenho o seguinte metodo.

public void testeRelatorio() {
	DemandBO demandBO = new DemandBOImpl();
	Collection<Demand> demands = null;
	
	try {
		demands = demandBO.searchDemandWaiting();

        // Localiza o contexto da pasta onde esta localizado o .jasper  
        String pathJasper = context.getRealPath("WEB-INF/report/") + "/";  
              
        // Recebe a lista  populada  
        JRBeanCollectionDataSource ds = new JRBeanCollectionDataSource(demands);  
              
        // pega o ds + a conexao para ir ate o ireport para listar dentro do relatorio  
        JasperPrint impressao = JasperFillManager.fillReport(pathJasper + "/tese.jasper", null, ds);  
	    
	    //JasperPrint print = JasperFillManager.fillReport(caminho, null, new JRBeanCollectionDataSource(demands));
	
	// exportacao do relatorio para outro formato, no caso PDF 
	JasperExportManager.exportReportToPdfFile(print, "rel/RelatorioGerdson.pdf");  
	System.out.println("Relatório gerado.");
	   
	} catch (JRException e) {
		e.printStackTrace();	
	} catch (BOException e) {
	result.include("erroMessage", new ErroMessage(e.getMessage()));
	e.printStackTrace();
	} catch (ApplicationException e) {
		result.forwardTo(ErrorController.class).returnException(new ErroMessage(e.getMessage()));
		e.printStackTrace();
	}
}

A duvida é como fazer, poi observei alguns exemplos no fórum e utiliza ServletContext :
ex: http://www.guj.com.br/java/122447-resolvido-relatorios-ireport--vraptor
Tem alguma forma de fazer sem utilizar context, só utilizado o metodo da controller do vraptor???

1 Resposta

Rafael_Guerreiro

Por que você não pode usar a servlet context?

Para usar ela, basta você receber a ServletContext no construtor do seu controller que o VRaptor injeta lá para você…

Criado 18 de maio de 2012
Ultima resposta 18 de mai. de 2012
Respostas 1
Participantes 2