No obtuve respuesta del GDS GDS Nro 53498: Impresión de PDFs con Jasper

Buen día, escribo por este medio porque no obtuve respuesta a la última pregunta por GDS Nro 53498: Impresión de PDFs con Jasper.
Mi pregunta fue la siguiente: Hola, modificamos esos 3 archivos y podemos descargar los archivos (por ejemplos actas) desde Guaraní gestión, pero en 3w cuando quiero descargar un certificado de alumno regular aparece el error “protocol error: , Invalid document end at col 1. Check the back end log for OutOfMemoryErrors. fread(): Length parameter must be greater than 0”
¿Cómo lo podemos solucionar?

Buenos días Guillermo, te hago una consulta, tenes el externals de los cambios de gestión asociado a autogestión
es decir la carpeta personalización de gestión asociada al autogestión ?
si es así te vas a <ruta autogestión>/g3w3/src/pers_gestion
y haces un svn up para que te traiga los cambios en los jasper personalizados (si los tenes commiteados)
para que se refleje en autogestión lo mismo que gestión.
Sino llevate a la carpeta
<ruta autogestión>/src/pers_gestion/exportaciones/jasper
los .jasper que tenes personalizados en gestión.
Probá esto para ver si se soluciona la impresión en blanco.

PD: El error que mostras te sale algo de que tiene la memoria llena ?

Hola

Antes que nada mil disculpas por la tardanza, se traspapelaron los avisos de ese GDS posiblemente porque estaba cerrado desde el 08/09/2021, les pedimos que en estos casos vuelvan a generar un nuevo GDS haciendo referencia al GDS cerrado.

Siguiendo con el GDS, se aplicó la misma actualización que se realizó en Gestión también en Autogestión? Ya que si no comparten el jasper actualizado, va a utilizar el jasper que viene por defecto en Autogestion. En caso de que este no sea su caso, detengan el servicio de Jasper, luego corran este comando en consola y adjunten el archivo /tmp/jasper.log (/usr/bin/java -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5 /tmp/jasper.log &>/dev/null &)

Esto sucede en determinadas impresiones? o sucede en todos los casos?

2

Hola!

Adjunto información sobre el problema:

- La virtual LOCAL tiene todos los sistemas: Gestión, Autogestión, y Preinscripcion.
- El server Jasper funciona, y podemos imprimir las Actas de Examen desde Gestión sin problemas (las personalizaciones).
- Desde autogestión podemos imprimir otros reportes en pdf (historia académica, etc.) pero en la opción de Trámites->Solicitar Constancias y Certificados, se agregan bien, pero sale el error al querer imprimir el pdf: 

protocol error: , Invalid document end at col 1. Check the back end log for OutOfMemoryErrors. fread(): Length parameter must be greater than 0

 - el /tmp/jasper.log tiene lo siguiente al querer imprimir ese reporte:

Nov 01 13:25:20 JavaBridge INFO : VM                  : 11.0.12@https://tracker.debian.org/openjdk-11
Nov 01 13:25:20 JavaBridge INFO : JavaBridge version             : 7.2.1
Nov 01 13:25:20 JavaBridge INFO : logFile             : /tmp/jasper.log
Nov 01 13:25:20 JavaBridge INFO : default logLevel    : 5
Nov 01 13:25:20 JavaBridge INFO : socket              : SERVLET_LOCAL:8081
Nov 01 13:25:20 JavaBridge INFO : java.ext.dirs       : null
Nov 01 13:25:20 JavaBridge INFO : php.java.bridge.base: /root
Nov 01 13:25:20 JavaBridge INFO : thread pool size    : 20
Nov 01 13:25:20 JavaBridge INFO : JavaBridgeRunner started on port INET_LOCAL:8081
Nov 01 13:31:32 JavaBridge DEBUG: Socket connection accepted
Nov 01 13:31:32 JavaBridge DEBUG: Starting HTTP server thread from thread pool
Nov 01 13:31:32 JavaBridge ERROR: An exception occured: java.lang.IllegalStateException: Please use a JEE server or servlet engine.
java.lang.IllegalStateException: Please use a JEE server or servlet engine.
        at php.java.bridge.http.JavaBridgeRunner.doPut(JavaBridgeRunner.java:194)
        at php.java.bridge.http.HttpServer.service(HttpServer.java:289)
        at php.java.bridge.http.HttpServer$Runner.run(HttpServer.java:205)
        at php.java.bridge.util.ThreadPool$Delegate.run(ThreadPool.java:60)
        at php.java.bridge.util.AppThreadPool$Delegate.run(AppThreadPool.java:58)
Nov 01 13:31:32 JavaBridge DEBUG: term (thread removed from pool): Thread[JavaBridgeHttpServerThreadPool#1,5,JavaBridgeHttpServerThreadPool#1]

- en el log de apache, tiene lo siguiente:}

[Mon Nov 01 13:42:02.532388 2021] [php7:warn] [pid 686] [client 172.16.237.1:59948] PHP Warning:  fread(): Length parameter must be greater than 0 in /usr/local/proyectos/g33w/vendor/siu-toba/jasper/JavaBridge/java/Java.inc on line 1074, referer: http://172.16.237.145/udc/solicitudes

[Mon Nov 01 13:42:02.533727 2021] [php7:warn] [pid 686] [client 172.16.237.1:59948] PHP Warning:  file_put_contents(/usr/local/proyectos/g33w/instalacion/log/des01/20211101_134202___2358.log): failed to open stream: Permission denied in /usr/local/proyectos/g33w/vendor/siu/chulupi-framework/src/SIU/Chulupi/util/log/log.php on line 277, referer: http://172.16.237.145/udc/solicitudes


- ya revisamos varias veces los permisos de los directorios, y también los volvimos a colocar como dice la documentación y sigue saliendo ese error (que parece que es de permisos).

- Las personalizaciones de gestion estan vinculadas a autogestion, en la carpeta <autogestion>/src/pers_gestion/exportaciones/jasper

- También probé copiar los archivos jasper del directorio de "<gestion>/exportaciones/jasper" en el directorio de autogestion, y revisé los permisos, y sigue el error.

- Cabe destacar que este servidor es un Debian 11 (bullseye), y los servidores de produccion - porque ahllí esta separado en BD, gestion, autogestion y preinscr. -  (y otros de desarrollo que tenemos donde SI funcionan los reportes) son Debian 10 (buster), no se si cambiará algo?

Quedamos a la espera de cualquier ayuda, saludos!

Hola Nicolas, gracias por los logs!!!

En el GDS 53498 te había pedido que reemplaces 3 archivos en Gestión. Entre dichos archivos se encontraba el Java.inc. Aunque estés en una instalación local, se deben reemplazar dichos archivos de igual forma en el vendor de autogestión. Según el siguiente warning, no los reemplazaste, ya que la linea 1074 del Java.inc a reemplazar no hace un fread(), te pediría que reemplaces esos tres archivos (ver GDS 53498) y reinicies el servidor de Jasper:


[Mon Nov 01 13:42:02.532388 2021] [php7:warn] [pid 686] [client 172.16.237.1:59948] PHP Warning:  fread(): Length parameter must be greater than 0 in /usr/local/proyectos/g33w/vendor/siu-toba/jasper/JavaBridge/java/Java.inc on line 1074, referer: http://172.16.237.145/udc/solicitudes

2

Hola Gabriel,

Buenos días! claro, hicimos el cambio en gestión (y funciona) y nunca relacionamos que también teníamos que hacerlo en autogestión. Ahora ya reemplazamos esos archivos de jasper y funciona perfecto! muchas gracias por la ayuda, saludos!

Relacionado al foro: https://foro.comunidad.siu.edu.ar/index.php?topic=22948