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

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… =)

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");

[quote=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"); [/quote]

blz…mas passo o realPath assim :

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

Porque assim não funcionou… =(

Felipe,

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