Java - Jasper Reports

 
Vista:

Jasper Reports

Publicado por Leo (6 intervenciones) el 05/11/2008 11:12:46
Hola,

tengo un problema a la hora de utilizar jasper reports en mi aplicación. Tengo una aplicación que distribuyo via Java Web Start con un .jar en el que incluyo el código y los ficheros .jasper. El problema lo tengo a la hora de cargar los ficheros .jasper porque no los carga bien.

El caso es que si creo especificamente una carpeta local en el cliente donde esten los ficheros .jasper e indico en el codigo el path, me lo coge bien.

Pero lo que necesito hacer es incorporar estos ficheros .jasper en el .jar de la aplicación. En este caso, si indico el path relativo de donde están los .jasper en el .jar me da un error. Encuentra el fichero, pero no sé porque no lo "abre":

net.sf.jasperreports.engine.JRException: Error loading object from InputStream
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:196)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:580)
...

Y el código que tengo es:
...
ClassLoader cl = this.getClass().getClassLoader();
InputStream fis =(cl.getResourceAsStream("resources/form.jasper"));
...
jasperPrint = JasperFillManager.fillReport(fis, paramMap, dataSource);
...

El error me da en la linea de creación del InputStream.

Agradeceré cualquier comentario que me pueda ayudar,
Leo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Jasper Reports

Publicado por Danilo Juvinao (278 intervenciones) el 07/11/2008 21:12:29
Intenta así:

URL dirMaestro = getClass().getResource("/Reportes/MiReporte.jasper");
JasperReport masterReport = (JasperReport)JRLoader.loadObject(dirMaestro);
....
//PARAMETROS Y DEMAS
....
JasperPrint jasperPrint = JasperFillManager.fillReport(masterReport, parametros, conexion);
JasperViewer.viewReport(jasperPrint,false);

exitos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Jasper Reports

Publicado por Marcelo (1 intervención) el 20/11/2008 20:58:33
Hola, probá con esto:

URL urlFile1 = this.getClass().getClassLoader().getResource( "miapp/reportes/form.jasper");

JasperReport jr = (JasperReport) JRLoader.loadObject(urlFile1);

HashMap parameters = new HashMap();
parameters.put("P_ID",1111);

JasperPrint reporte = JasperFillManager.fillReport(reporte, paramMap,dataSource);
JasperViewer.viewReport(reporte, false);

Tené en cuenta que form.jasper debe existir dentro del paquete (en este caso miapp/reportes) y el jar del mismo debe estar declarado en tu jnlp.

Espero te sirva de algo.

Saludos

Marcelo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar