Ireport + jsf : Como abrir relatorio com caminho "interno"?

3 respostas
felipehts

Bom dia pessoal !!!

bom estou com a seguinte dúvida: Como abrir um relatório com cominho interno ??? explicando: Tipo eu só consigo abrir o relatório assim:

jasperPrint = JasperFillManager.fillReport("C:\\relatorio.jasper", parametros, ConnectionFactory.getConnection());

coloquei dentro do mesmo pacote da classe que chama o relatório, porém não consegui abrir, tentei assim:

jasperPrint = JasperFillManager.fillReport("relatorio.jasper", parametros, ConnectionFactory.getConnection());

e assim

jasperPrint = JasperFillManager.fillReport("/relatorio.jasper", parametros, ConnectionFactory.getConnection());

tentei também criar também um outro pacote chamado Relatórios, ai tentei assim:

jasperPrint = JasperFillManager.fillReport("/Relatorios/relatorio.jasper", parametros, ConnectionFactory.getConnection());

e assim

jasperPrint = JasperFillManager.fillReport("../Relatorios/relatorio.jasper", parametros, ConnectionFactory.getConnection());

porém não consegui abrir…alguém poderia me ajudar ??? vlw pela ajuda de todos… =)

3 Respostas

marcelocenerine

Felipe,

Como vc está usando JSF, vc pode fazer o seguinte:

FacesContext facesContext = FacesContext.getCurrentInstance();
ServletContext servletContext =   (ServletContext) facesContext.getExternalContext().getContext();
String realPath = servletContext.getRealPath("relatorio.jasper");
felipehts

marcelocenerine:
Felipe,

Como vc está usando JSF, vc pode fazer o seguinte:

FacesContext facesContext = FacesContext.getCurrentInstance(); ServletContext servletContext = (ServletContext) facesContext.getExternalContext().getContext(); String realPath = servletContext.getRealPath("relatorio.jasper");

blz…mas passo o realPath assim :

jasperPrint = JasperFillManager.fillReport(realPath, parametros, ConnectionFactory.getConnection());

Porque assim não funcionou… =(

marcelocenerine

Felipe,

Sugiro vc debugar e ver o que está sendo colocado na sua variável realPath. Posta o resultado ai depois.

Criado 29 de novembro de 2011
Ultima resposta 29 de nov. de 2011
Respostas 3
Participantes 2