Reporte Jasper funciona en desarrollo y no en servidor

Hola Gente …

Estoy comenzando a usar Jasper Report para generar reportes de nuestros sistema y tengo un reporte, el primero, que no funciona en el servidor.

En particular tengo un reporte que tiene varios subreportes. La ubicación real del reporte y sus subreportes es la carpeta jasper, “/home/maleaske/Proyectos/toba/2.5.0/proyectos/pasajes/exportaciones/jasper/”. Así, en desarrollo funciona barbaro.

En servidor ya no, el log del sistema me tira el mensaje siguiente: [TRAZA][[o:Exception]:“java.lang.Exception: Invoke failed: [[c:JasperFillManager]]->fillReport((o:String)[o:String], (i:Map)[o:HashMap], (i:Connection)[o:Jdbc4Connection]). Cause: net.sf.jasperreports.engine.JRException: Resource not found at : /home/maleaske/Proyectos/toba/2.5.0/proyectos/pasajes/exportaciones/jasper/datos_viajero.jasper VM: 1.6.0_38@http://java.sun.com/” at:

Es correcto el mensaje porque la ubicación de la carpeta jasper es otra.

Ante este error modifique el parametro “SUBREPORT_DIR”, le indique solo la carpeta donde se encuentran los subreportes “jasper/”. Con este cambio dejo de funcionar en desarrollo y en el servidor.

Lo subi igual al servidor para probar y tampoco le gusto. El mensaje de error ahora es
[TRAZA][[o:Exception]:“java.lang.Exception: Invoke failed: [[c:JasperFillManager]]->fillReport((o:String)[o:String], (i:Map)[o:HashMap], (i:Connection)[o:Jdbc4Connection]). Cause: net.sf.jasperreports.engine.JRException: Resource not found at : jasper/datos_viajero.jasper VM: 1.6.0_38@http://java.sun.com/” at:

Siento que hay un detalle que me falta resolver pero no se que … alguien me puede ayudar.

Gracias

Marcela

Hola Marcela,

mencionas un problema de ruta… sin embargo pareciera que la ruta es la misma, de todas maneras suponiendo que efectivamente la ruta fuera otra, como estas indicando donde buscar los archivos?.. tenes alguna variable o parametro con un path base del cual partir?. Alguna diferencia en las versiones de toba, php, apache, java entre las 2 maquinas?

Algun autoload, un require que este faltando subir?, un tema de permisos quizas?. Yo volveria a la situacion inicial, asegurandome que funcione en desarrollo y luego de ahi ver que pasa en produccion.

Saludos

Hola Richard … gracias x contestar.

Cuando hablaba de rutas distinta me refería a que en desarrollo el reporte utiliza para el parametro SUBREPORT_DIR una dirección absoluta: /home/maleaske/Proyectos/toba/2.5.0/proyectos/pasajes/exportaciones/jasper/, mientras que una vez instalado el sistema esa dirección debería ser relativa porque físicamente el reporte y sus subreportes se encuentran en /usr/local/unpsjb/pasajes/exportaciones/jasper/.

Le devolvi al parametro SUBREPORT_DIR su ruta absoluta y volvio a funcionar el reporte en desarrollo. Pero en el servidor sigue diciendo que el subreporte de datos_viajero no lo encuentra en la ruta … Resource not found at : /home/maleaske/Proyectos/toba/2.5.0/proyectos/pasajes/exportaciones/jasper/datos_viajero.jasper

Se entiende ?? tengo la idea que en algún lado del reporte le tengo que indicar que no considere la dirección absoluta.

Saludos

Gente … encontré una solución, no se si es la mejor, pero para el tema de las direcciones absolutas y relativas de los subreportes y hojas de estilos por ejemplo funciona.

Vean el link siguiente: http://forums.devshed.com/java-help-9/relative-path-subreport-jasperreport-309313.html

Básicamente allí recomiendan modificar directamente el archivo JRXML, editar los lineas que expresan el parameter name=“SUBREPORT_DIR” , para las hojas de estilo y luego compilarlos.

Posteriormente subir los archivos jasper al servidor respetando la ruta que definiste anteriormente y listo, así funciona!!!

Saludos

Hola Marcela,

gracias por la info, voy a ver despues si se puede agregar de alguna manera lo que se comenta en dicho foro.

Saludos