Error Jasper al Imprimir Certificados

Hola que tal?

Al querer hcer un reporte con Jasper, por ejemplo, Imprimiendo un acta de Examen o Cursada, anda perfecto.

Pero probé imprimir un Certificado y me sale el error siguiente que les transcribo (version G3 3.10):


java_InternalException: [TRAZA][[o:Exception]:“java.lang.Exception: Invoke failed: [[o:Request$PhpNull]]->createStatement. Cause: java.lang.NullPointerException: cannot call “createStatement()” on a Java null object. A previous Java call has returned a null value, use java_is_null($jvalue) to check. VM: 1.6.0_27@http://java.sun.com/” at:
#-5 php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1009)
#-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 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(248): java_ThrowExceptionProxyFactory->getProxy(9, ‘php.java.bridge…’, ‘’, true)
#1 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(388): java_Arg->getResult(true)
#2 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(394): java_Client->getWrappedResult(true)
#3 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(594): java_Client->getResult()
#4 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(1731): java_Client->invokeMethod(8, ‘createStatement’, Array)
#5 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(1839): java_JavaProxy->__call(‘createStatement’, Array)
#6 /usr/local/proyectos/guarani/lib/toba/php/3ros/JavaBridge/java/Java.inc(2007): java_AbstractJava->__call(‘createStatement’, Array)
#7 /usr/local/proyectos/guarani/lib/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(371): Java->__call(‘createStatement’, Array)
#8 /usr/local/proyectos/guarani/lib/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(371): java_InternalJava->createStatement()
#9 /usr/local/proyectos/guarani/lib/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(300): toba_vista_jasperreports->configurar_bd(Object(toba_db_postgres7))
#10 /usr/local/proyectos/guarani/lib/toba/php/nucleo/lib/salidas/toba_vista_jasperreports.php(251): toba_vista_jasperreports->completar_con_datos()
#11 /usr/local/proyectos/guarani/lib/toba/php/nucleo/toba_solicitud_web.php(329): toba_vista_jasperreports->generar_salida()
#12 /usr/local/proyectos/guarani/lib/toba/php/nucleo/toba_solicitud_web.php(185): toba_solicitud_web->servicio__vista_jasperreports(Array)
#13 /usr/local/proyectos/guarani/lib/toba/php/nucleo/toba_solicitud_web.php(60): toba_solicitud_web->procesar_servicios()
#14 /usr/local/proyectos/guarani/lib/toba/php/nucleo/toba_nucleo.php(79): toba_solicitud_web->procesar()
#15 /usr/local/proyectos/guarani/www/aplicacion.php(27): toba_nucleo->acceso_web()
#16 {main}]

Agrego algo más:

En el archivo log del apache me que ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud está sin definir, transcribo el error:

[Tue May 12 06:54:51 2015] [error] [client 200.61.248.2] PHP Notice: Undefined property: ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud in /usr/local/proyectos/guarani/php/operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.php on line 97, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st5551cd2cc9ea4&ai=guarani||37000080
[Tue May 12 06:54:51 2015] [error] [client 200.61.248.2] PHP Warning: Invalid argument supplied for foreach() in /usr/local/proyectos/guarani/php/operaciones/_lib/ev_info_datos_nucleo.php on line 40, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st5551cd2cc9ea4&ai=guarani||37000080
[Tue May 12 06:54:51 2015] [error] [client 200.61.248.2] PHP Notice: Undefined property: ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud in /usr/local/proyectos/guarani/php/operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.php on line 117, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st5551cd2cc9ea4&ai=guarani||37000080
[Tue May 12 06:54:51 2015] [error] [client 200.61.248.2] PHP Notice: Undefined property: ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud in /usr/local/proyectos/guarani/php/operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.php on line 121, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st5551cd2cc9ea4&ai=guarani||37000080

Hola Sergio,
estás trabajando con la operación de Administrar Solicitudes? Qué certificado estás intentando imprimir? Por lo que muestra el log parece que no estaría pudiendo recuperar correctamente los datos de la Constancia que estás intentando imprimir desde la base.
Podrías verificar la sql que está ejecutando en el log de Toba sobre el id de constancia con el que estás trabajando, para corroborar qué datos tiene asociados en la base de negocios. De ser posible, adjuntanos el log del sistema y la secuencia de pasos que ejecutaste para llegar a ese estado.

Saludos,
Gabriela.

Hola Gabriela,

es el Administrador de Solicitudes, y el Certificado es el de Alumno Regular, aunque he probado con otros y tampoco imprime.

Lo que si ahora no me ha salido el error que te mencioné del $s__datos_solicitud, quizás eso fué cuando ejecuté otra operación.

Te paso adjunto el log.
Decime si falta algo.

SALUDOS Y GRACIAS.-


log-Administrar Solicitudes.txt (10.9 KB)

Agrego otra cosa, el error de la variable Nula sale cuando una vez hecho el pedido de impresión (que no sale), pongo “Volver” en la operación, para volver a la operación de solicitud de Certificados.

Tranciscribo los errores al hacer click en volver:

[Wed May 13 08:03:11 2015] [error] [client 200.61.248.2] PHP Notice: Undefined property: ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud in /usr/local/proyectos/guarani/php/operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.php on line 97, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st55532f53717b4&ai=guarani||37000080&tcm=previsualizacion
[Wed May 13 08:03:11 2015] [error] [client 200.61.248.2] PHP Warning: Invalid argument supplied for foreach() in /usr/local/proyectos/guarani/php/operaciones/_lib/ev_info_datos_nucleo.php on line 40, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st55532f53717b4&ai=guarani||37000080&tcm=previsualizacion
[Wed May 13 08:03:11 2015] [error] [client 200.61.248.2] PHP Notice: Undefined property: ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud in /usr/local/proyectos/guarani/php/operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.php on line 117, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st55532f53717b4&ai=guarani||37000080&tcm=previsualizacion
[Wed May 13 08:03:11 2015] [error] [client 200.61.248.2] PHP Notice: Undefined property: ci_edi_administrar_solicitudes_constancias::$s__datos_solicitud in /usr/local/proyectos/guarani/php/operaciones/constancias/administrar_solicitudes/ci_edi_administrar_solicitudes_constancias.php on line 121, referer: http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st55532f53717b4&ai=guarani||37000080&tcm=previsualizacion

Mirando uno por uno los SQLs ejecutados, veo que el último no devuelve ningún dato,
y mirando la tabla sga_constancias_solicitud_param no tiene ningún dato por lo que veo, como que no guarda los datos de los parámetros.

Va el SQL:


SELECT

					sga_constancias_solicitud_param.campo,
					sga_constancias_solicitud_param.valor,
					mce_campos.tipo_de_dato
			FROM	
					"negocio".sga_constancias_solicitud_param,
					"negocio".mce_campos
			WHERE	
					sga_constancias_solicitud_param.solicitud = '17'
					AND sga_constancias_solicitud_param.campo = mce_campos.campo

Será algo de esto?:

http://foro.comunidad.siu.edu.ar/index.php?topic=4949.msg19974

Modifique esto agregandole ei_arbol de los parametros y me devuelve “DUMPEO de VALORES” sin ningun valor:


function vista_jasperreports(toba_vista_jasperreports $report)
{
$plantilla = toba::consulta_php(‘co_constancias’)->get_constancia_archivo_plantilla($this->s__datos_solicitud[‘constancia’]);
$path = guarani::get_path_reporte_jasper($plantilla);
$report->set_path_reporte($path);

	//Seteo el logo de la Institución correspondiente, si no existe seteo el logo de Guarani
	$path_logo = guarani::get_path_logo_impresion();
	$report->set_parametro('logo', 'S', $path_logo);
	$report->set_parametro('solicitud', 'E', $this->s__solicitud);

	if (!is_null($this->s__datos_form_rechazo['autoridad'])) {
		$autoridad = toba::consulta_php('co_autoridades_cargos')->get_datos_basicos_autoridad($this->s__datos_form_rechazo['autoridad']);
		$str = (is_null($autoridad['autoridad_titulo'])) ? $autoridad['autoridad_nombre'] : $autoridad['autoridad_titulo'].' '.$autoridad['autoridad_nombre'];
		$report->set_parametro('autoridad_nombre', 'S', $str);
		$report->set_parametro('autoridad_cargo', 'S', $autoridad['autoridad_cargo']);
	}

	$parametros = toba::consulta_php('co_constancias')->get_solicitud_params($this->s__solicitud);

	ei_arbol($parametros);

	foreach ($parametros as $param) {
		$report->set_parametro($param['campo'], $param['tipo_de_dato'], $param['valor']);

	}

Sin embargo con el mismo alumno le hice un certificado de examen final y si me mostró valores el DUMP.
Igualmente no me imprimió nada tampoco.

Hola Sergio,
vamos por partes así es más fácil determinar en qué casos se está dando el error:

  • El tema de los parámetros no tiene que ver con el error que mostrabas antes, es correcto que para algunos certificados no traiga nada esa consulta, ya que según el certificado puede haber o no parámetros asociados.
  • La impresión muestra una hoja en blanco, o tira un error del null pointer? En la consola donde tenés levantado el JavaBridge muestra algo? Esto siempre hablando al momento de la impresión, sin continuar con el circuito al volver a la operación de Solicitar.
  • Según entiendo estás ingresando desde la operación de Solicitar y pasás a la de Administrar Solicitudes para imprimirla. Tenés más de una sesión en simultáneo? Podés verificar que la Solicitud de Constancia en cuestión haya quedado bien grabada en la BD previamente a imprimir? Por lo que decís todos los otros certificados con Jasper se imprimen correctamente, con lo cual esto se da sólo en este circuito de operaciones con cualquier certificado y alumno. Por el error que vemos, al parecer hay algún problema en los datos de la solicitud, pero no estamos pudiendo replicar el caso.

Saludos,
Gabriela.

Hola Gabriela, te comento el circuito paso a paso:

Recién lo ejecuté directamente desde el Toba Editor, sin ninguna otra instancia abierta:

  • » Constancias y Certificados » Solicitar Constancias y Certificados,
    ahí busco al alumno por Apellido, pongo Filtrar, luego lo elijo al alumno con la lupa, ahí me aparece que “No se encontraron Solicitudes de Constancias.”
    entonces hago click en Agregar y elijo por ejemplo: Constancia () - Constancia de Alumno Regular, Cantidad de Copias: 1, Presentar ante () : Quien corresponda, Observaciones: Nada
  • Luego hago Click en Guardar cuando me pregunta. “La solicitud se generó correctamente ¿Desea continuar trabajando con esta Constancia?”
  • Luego selecciono la Autoridad Firmante (he probado sin seleccionarla también)
  • Y selecciono Imprimir
  • En este momento me habre una nueva página web “vacia”, sin nada, en la barra de direcciones me pone esto:
    http://200.61.248.77/guarani/3.10/aplicacion.php?ah=st5554714e3cdb7&ai=guarani||37000080&tcm=previsualizacion&ai=guarani||37000080&ts=vista_jasperreports&tsd=guarani||37000555,

En ese momento el Jasper en la consola me da este error:


May 14 06:56:31 VMBridge ERROR: An exception occured: java.lang.NullPointerException: cannot call “createStatement()” on a Java null object. A previous Java call has returned a null value, use java_is_null($jvalue) to check.
java.lang.NullPointerException: cannot call “createStatement()” on a Java null object. A previous Java call has returned a null value, use java_is_null($jvalue) to check.
at php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1009)
at php.java.bridge.Request.handleRequest(Request.java:415)
at php.java.bridge.Request.handleRequests(Request.java:491)
at php.java.bridge.http.ContextRunner.run(ContextRunner.java:146)
at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)


Al cerrar está página “vacía”, me vuelve a aparecer la página en donde hice imprimir, con el siguiente cartel:

" La constancia se imprimió correctamente. "
En donde le doy “Aceptar” y ahí nomás queda.

Ahora, lo raro es que ahora me está saliendo un error nuevo en el visor de Toba. (por alguna razón esto antes no salía):


SQLSTATE[22P02]: Invalid text representation: 7 ERROR: la sintaxis de entrada no es válida para integer: «»

LINE 16: sga_constancias_autoridades.constancia = ‘’
^

toba_error_db: <p><b>SQLSTATE:</b> db_22P02</p><p><b>CODIGO:</b> 7</p><p><b>MENSAJE:</b> ERROR: la sintaxis de entrada no es válida para integer: «» LINE 16: sga_constancias_autoridades.constancia = '' ^</p><p><b>SQL:</b> SELECT sga_constancias_autoridades.autoridad, sga_constancias_autoridades.en_calidad_de, sga_autoridades.apellido || ', ' || sga_autoridades.nombres as autoridad_nombre, CASE sga_constancias_autoridades.en_calidad_de WHEN 'T' THEN 'TITULAR' WHEN 'S' THEN 'SUPLENTE' END as autoridad_calidad FROM sga_constancias_autoridades, sga_autoridades WHERE sga_constancias_autoridades.autoridad = sga_autoridades.autoridad AND sga_constancias_autoridades.constancia = '' ORDER BY en_calidad_de DESC – toba_log: 716001798 </p> [TRAZA]exception ‘toba_error_db’ with message ‘SQLSTATE[22P02]: Invalid text representation: 7 ERROR: la sintaxis de entrada no es válida para integer: «»
LINE 16: sga_constancias_autoridades.constancia = ‘’
^’ in /usr/local/proyectos/guarani/lib/toba/php/lib/db/toba_db.php:385


Va adjunto archivo con todo lo que sale en el visor.

SALUDOS


nuevo log.txt (15 KB)

Hola Martin

Cargastes las autoridades, autoridades que firman los certificados y esas cosas?

Emilio

Hola Emilio, como andas??

Si, está definido, te mando la imagen adjunta.

Lo raro es que ahora volví a probar y ese error no sale!
Pero sigue saliendo el error:

May 14 08:27:38 VMBridge ERROR: An exception occured: java.lang.NullPointerException: cannot call “createStatement()” on a Java null object. A previous Java call has returned a null value, use java_is_null($jvalue) to check.
java.lang.NullPointerException: cannot call “createStatement()” on a Java null object. A previous Java call has returned a null value, use java_is_null($jvalue) to check.
at php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1009)
at php.java.bridge.Request.handleRequest(Request.java:415)
at php.java.bridge.Request.handleRequests(Request.java:491)
at php.java.bridge.http.ContextRunner.run(ContextRunner.java:146)
at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)

No se porque salía lo otro hoy.

SALUDOS.-


Administrar constancias y certificados.jpg

Administrar constancias y certificados.png

Hola Sergio,
como te comentaba antes, para poder encerrar el bug veamos lo que sucede cuando falla la impresión, sin seguir ejecutando eventos posteriores que seguramente darán lugar a nuevos errores encadenados.
Sigue pareciendo que hay un error en los datos de la solicitud generada. Para asegurarnos que no hay un problema con la sesión de php te pedimos que pruebes lo siguiente: en lugar de navegar desde la operación de Solicitar Constancias y Certificados, a partir de la opción ‘¿Desea continuar trabajando con esta Constancia?’, solicitá la constancia, guardala y verificá que esos datos hayan quedado correctos, después dirigite manualmente a la operación de Administrar Solicitudes para imprimirla, y envianos el log correspondiente a esa secuencia cuando surge la falla (no las url’s locales ya que no tenemos acceso a las mismas).
Pudiste verificar si este problema se da sólo con este certificado y en el resto de las impresiones jasper funcionan correctamente?

Saludos,
Gabriela.

Hola Gabriela,

lo de los links era solo para que veas como concatenaba los valores en la URL por si había algo raro ahí.

Ahí probe como me dijiste, solicité y lo dejé ahi para luego imprimirlo en Administración de Solicitudes.

Antes de imprimirlo te muestro los valores de las tablas:

sga_constancias_solicitud:
45;1744;1;“2015-05-14 11:00:11.976812-03”;1;“”;;“”;;“Quien corresponda”;“Prueba”;1;62950;“Pendiente”

En donde corresponde a la alumna y certificado elegido.

Y la tabla:
sga_constancias_solicitud_param;
– No hay registro de esta solicitud.

Luego de esto voy a:
Constancias y Certificados »Administrar Solicitudes

Elijo la Autoridad Firmante, hago Imprimir y me sale lo mismo que hoy:
[[o:Exception]:“java.lang.Exception: Invoke failed: [[o:Request$PhpNull]]->createStatement. Cause: java.lang.NullPointerException: cannot call “createStatement()” on a Java null object. A previous Java call has returned a null value, use java_is_null($jvalue) to check. VM: 1.6.0_27@http://java.sun.com/” at:

Ahora te paso como quedo la tabla sga_constancias_solicitud, luego de imprimir (sin entregar, probe entregar y me sale lo mismo):
45;1744;1;“2015-05-14 11:00:11.976812-03”;1;“2015-05-14 11:08:53.326616-03”;1;“”;;“Quien corresponda”;“Prueba”;1;62950;“Impreso”

Con respecto a las impresiones, probé Imprimir Actas, de Examen y Cursado y anda bien. Tengo enrtendido esto usa Jasper también. Y me funcionó.
Luego imprimí otros reportes, pèro no se si usa Jasper o no. Tampoco tuve problemas.

Por ahora es lo de los Certificados nomas.

SALUDOS.-

Hola Sergio,
me adjuntás el log correspondiente a esa ejecución?

Gracias,
Gabriela.

Gabriela, acá va el log.

Luego el error de la ventana de ejecución del jasper es el mismo que ya te envié hoy nomas.

GRACIAS!


log–14-05-2015.txt (11.6 KB)

Hola Sergio,
te pedimos si podés generar un gds para seguir tu caso con los datos particulares de tu instalación y base, ya que no estamos pudiendo replicar el error.

Saludos,
Gabriela.

Hola Gabriela, perfecto.

Ahora lo subo.

GRACIAS!

Hola, estoy con el mismo problema.
La descripción del problema /logs son los mismos
Llegaron a una solución?

Saludos.
Pablo.

P.D: Estoy en la vesión3.10.0