Problemas con Jasper

Gente buen día, estoy tratando de iniciarme con el tema de los reportes y para eso genere un reporte simple desde iReport y trate de incorporarlo al proyecto Toba_referencia.

Cuando carga el cuadro con los reportes de prueba, me carga el nombre del reporte de prueba también, pero al querer visualizarlo me genera el siguiente error:

java.lang.NullPointerException

En la carpeta C:\toba2.5\proyectos\toba_referencia\exportaciones\jasper deje los archivosprueba.jrxml y prueba.jasper

Qué me estaría faltando???

Les comento que los archivos de prueba que vienen con el proyecto de referencia me funcionan perfecto…

Muchas gracias!!!

Hola Javier,

te hago una consulta… con que version de IReport estas generando el reporte?.. tene en cuenta que si no es anterior a la version de JasperReports que tenes en el directorio 3ros, en gral no funciona.

Jasper y el JavaBridge lo instalaste manualmente o te bajaste el paquete de la wiki?. Desde dentro de IReport podes compilarlo normalmente y visualizar el reporte?

El error es bastante generico, cuando me lo he encontrado ha sido por incompatibilidad de versiones… pero no te puedo asegurar que sea lo unico que lo genera.

Saluduos

Richard, gracias por tu pronta respuesta, en realidad el reporte lo estoy generando con el Jaspersoft Studio-5.6.1. El Jasper y JavaBridge lo baje de la wiki.

Debería buscar una versión anterior?

Saludos

Richard,hice un pequeño cambio, instale el ireport 5.6.0 y cambie el JDK (tenia la versión 1.8, y puse la 1.7). generé un reporte y ahora me da lo siguiente

Unknown hyperlink target 0

Alguna idea??

Muchas gracias!

Hola Javier,

el paquete de la wiki esta armado alrededor de la version 5.6.0 de Jasper… asi que aunque los cambios deben ser minimos, hasta esa version tengo probado que las cosas funcionan. Yo probaria con el ireport 5.6.0 a ver si persiste el problema.

Con respecto al mensaje que me pasaste en el otro post… para esas cuestiones es mejor buscar en los foros de Jasper, son cuestiones internas a ellos donde yo mucho no conozco.

Saludos

Richard, otra consulta, ya pude hacer que ireport me genere un nuevo reporte, ahora trato de agregar lo realizado en el listado del proyecto Toba_referncia, pero al momento de seleccionar el item del cuadro me redirecciona a una pantalla en blanco y en la consola donde estoy ejecutando java -jar … me aparece lo siguiente

log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.

Cómo puedo seguir?

Gracias por la ayuda!

Hola Javier,

la pantalla que te aparece en blanco es porque te refresca al momento de sacar el reporte o por un fatal?

log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment). log4j:WARN Please initialize the log4j system properly.

Cómo puedo seguir?

Tenes que bajarte dicho proyecto (log4j) de Apache SF, te muestra un poco mejor el log de java… pero no mucho mas que lo que ves en consola, por otro lado… esos son warnings no te van a parar la generacion. No tenes ningun exception por ahi?.

Saludos

Richard, ejecute el reporte y me fije en el log, el cual paso a continuación

java_InternalException: [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: Error executing SQL statement for : report3 VM: 1.7.0_67@http://java.oracle.com/” at: #-18 net.sf.jasperreports.engine.query.JRJdbcQueryExecuter.createDatasource(JRJdbcQueryExecuter.java:240) #-17 net.sf.jasperreports.engine.fill.JRFillDataset.createQueryDatasource(JRFillDataset.java:1114) #-16 net.sf.jasperreports.engine.fill.JRFillDataset.initDatasource(JRFillDataset.java:691) #-15 net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1314) #-14 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:931) #-13 net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:873) #-12 net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:87) #-11 net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:287) #-10 net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:760) #-9 sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) #-8 sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) #-7 sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) #-6 java.lang.reflect.Method.invoke(Unknown Source) #-5 php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1054) #-4 php.java.bridge.Request.handleRequest(Request.java:415) #-3 php.java.bridge.Request.handleRequests(Request.java:491) #-2 php.java.bridge.http.ContextRunner.run(ContextRunner.java:146) #-1 php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60) #0 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(248): java_ThrowExceptionProxyFactory->getProxy(7, ‘org.postgresql…’, ‘’, true) #1 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(388): java_Arg->getResult(true) #2 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(394): java_Client->getWrappedResult(true) #3 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(594): java_Client->getResult() #4 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(1731): java_Client->invokeMethod(1, ‘fillReport’, Array) #5 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(1839): java_JavaProxy->__call(‘fillReport’, Array) #6 C:\toba2.5\php\3ros\JavaBridge\java\Java.inc(2007): java_AbstractJava->__call(‘fillReport’, Array) #7 C:\toba2.5\php\nucleo\lib\salidas\toba_vista_jasperreports.php(306): Java->__call(‘fillReport’, Array) #8 C:\toba2.5\php\nucleo\lib\salidas\toba_vista_jasperreports.php(306): JavaClass->fillReport(‘C:\toba2.5/proy…’, Object(Java), Object(java_InternalJava)) #9 C:\toba2.5\php\nucleo\lib\salidas\toba_vista_jasperreports.php(251): toba_vista_jasperreports->completar_con_datos() #10 C:\toba2.5\php\nucleo\toba_solicitud_web.php(329): toba_vista_jasperreports->generar_salida() #11 C:\toba2.5\php\nucleo\toba_solicitud_web.php(185): toba_solicitud_web->servicio__vista_jasperreports(Array) #12 C:\toba2.5\php\nucleo\toba_solicitud_web.php(60): toba_solicitud_web->procesar_servicios() #13 C:\toba2.5\php\nucleo\toba_nucleo.php(79): toba_solicitud_web->procesar() #14 C:\toba2.5\proyectos\toba_referencia\www\aplicacion.php(15): toba_nucleo->acceso_web() #15 {main}]

De lo que entiendo, esta línea es la que importa
Cause: net.sf.jasperreports.engine.JRException: Error executing SQL statement for : report3 VM: 1.7.0_67@http://java.oracle.com/" at: #-18

Yo ejecuto el preview del reporte en el ireport de manera correcta… que puede estar mal?

Hola Javier,

quizas una diferencia entre el driver JDBC que enviamos nosotros en el paquete y el que usa iReport?. Me parece que van cambiando segun la version de Java los drivers para Postgresql, si mal no recuerdo en el paquete esta el correspondiente a 8.4, para dar soporte a las versiones mas viejas que aun se estan usando. Quizas pueda venir por ahi el inconveniente.

Saludos

Richard, este es el Driver que me muestra el ireport


driver.png

driver.png

Richard, te comento pude hacer funcionar un reporte utilizando el ireport 3.5.3. El único tema es el siguiente, cuando genero un reporte que apunta a la base de Toba referencia (con un proyecto cualquiera) el reporte funciona. Ahora si hago un reporte apuntando a cualquier otra base… me genera problemas. Sinceramente no comprendo porque ocurre esto. Que parte de la configuración me estoy salteando para que me funcionen solamente los reportes que apuntan a la base de toba_referencia???

Desde ya muchas gracias!

Hola Javier,

justo te estaba respondiendo y me cambiaste el msg :D.

Si mal no comprendo, tuviste que hacer el reporte con 3.5.3 para que funcione?..la verdad que bastante chingado eso, se supone que deberian funcionar los reportes hasta 5.6.0.

Por otro lado, habria que ver que conexion de bd se le esta pasando… quizas ahi este el problema, te hago una consulta, la “base” de toba_referencia esta como schema de la misma base de toba o esta separada?

En el proyecto, tenes marcada como fuente predeterminada la que corresponde a tu base de negocios?, es raro lo que me comentas porque la fuente se saca en runtime tal como cuando haces un consultar en un metodo de carga de un combo.

Saludos

Richard, te respondo

la "base" de toba_referencia esta como schema de la misma base de toba o esta separada?

esta como schema

tenes marcada como fuente predeterminada la que corresponde a tu base de negocios?

Por lo que tengo entendido si.

Te paso un par de prints de pantalla para ver si me podes ayudar un poco más!
:slight_smile:

Gracias


conexion_ireport.png

Fuente_toba.png

Postgres.png

Postgres.png

Richard, nuevamente consulto, acabo de hacer la siguente prueba… agregue un Schema en la base de Toba y puse ahí la tabla que quiero consultar y … vualá! aparecio el reporte sin problemas… o sea tengo que usar un schema de la base de toba para tener mi reporte o tengo que configurar alguna otra cosa para usar una base de datos diferente?

Gracias!

Hola Javier,

no necesariamente, por eso te consultaba si la fuente que estaba como predeterminada en tu proyecto era la que estabas usando para el reporte o si puede estar apuntando a otra.

Lo que podes hacer como prueba, es antes de mandar a generar el reporte, utilizar el metodo set_conexion de toba_vista_jasperreports para pasarle un objeto toba_db perteneciente a tu base… algo me dice que no esta apuntando a donde debe la conexion que se crea por defecto, eso puede ser por el seteo que te comentaba antes (lo podes revisar entre las propiedades del proyecto). Por ejemplo, podria ser algo asi.


function vista_jasperreports($salida)
{
    $db = toba::db('idbase');
    $salida->set_conexion($db);
}

Saludos

Richard, gracias por el Tip, efectivamente al setear la conexión (reinicio de browser de por medio) me toma la base y la configuración que seteo en fuentes. Ahora tengo otro tema… (quién dijo que esto iba a ser fácil¿?) Al llamar al reporte, el Foxit Reader me dice lo siguiente

“format error: not a PDF or corrupted”

Ahora que puede estar mal?

Muchas gracias!

Hola Javier,

abri el archivo con algun editor de texto comun, lo mas probable es que aparezca al ppio algun mensaje de PHP y eso hace que se rompa el formato esperado.

Saludos