Ver Mensaje Individual
  #1065 (permalink)  
Antiguo 21/04/2009, 14:56
Pitu.
 
Fecha de Ingreso: enero-2005
Mensajes: 65
Antigüedad: 19 años, 4 meses
Puntos: 0
Respuesta: Jasper Report + iReport + NetBeans 4

Cita:
Iniciado por Pitu. Ver Mensaje
Vale, ahora si que no entiendo nada. No le paso ningun parametro (el Map vacio) y en report tengo un default que cuando lo ejecuto desde el ireport me lo hace bien, pero si lo llamo desde el java sale este error!! Tengo en el path las JARs que mencionais en los primeros post y los he sacado de la versión del iReport que estoy usando. No sé que más hacer y seguro que es una tonteria...

Gracias!
jeje, soy yo otra vez. He estado haciendo pruebas y el fallo, según creo, está en la variable "jasperReport" de mi java. Ahora usando este código me genera bien el PDF:
-->
try{
//1. Se compila el reporte
JasperCompileManager.compileReportToFile("C:/report.jrxml");

//2. Se llena el reporte con la informacion necesaria
Map pars = new HashMap();
pars.put("empresa", "prueba");

JasperPrint jasperPrint = JasperFillManager.fillReport( "C:/report.jasper", pars, new JREmptyDataSource());

//3. Se exporta a PDF
JasperExportManager.exportReportToPdfFile(jasperPr int, "C:/plantilla.pdf");

System.out.println("Done!");
}
catch (JRException e)
{
e.printStackTrace();
}
<--

Pero claro, esto no es lo que necesito. Quiero que cuando se pulse un botón desde la web, me salga el PDF para descargar. Y, la ruta al PDF depende del hosting (no C:/). Ahora lo hago así y me da el error que he comentado dos post atrás:
-->
try{
//1. Se compila el reporte
JasperReport jasperReport = (JasperReport)JRLoader.loadObject (getClass().getResource("/xxx/yyyreport.jasper"));

//2. Se llena el reporte con la informacion necesaria
Map pars = new HashMap();
pars.put("empresa", "prueba");

byte[] fichero = JasperRunManager.runReportToPdf (jasperReport, pars, new JREmptyDataSource());
response.setContentType("application/pdf");
response.setContentLength (fichero.length);
ServletOutputStream ouputStream = response.getOutputStream();
ouputStream.write(fichero, 0, fichero.length);
ouputStream.flush();
ouputStream.close();

System.out.println("Done!");
}
catch (JRException e)
{
e.printStackTrace();
}
<--

Seguiré intentandolo. Gracias!