Siu Guarani - Problemas para descargar el PDF desde el autogestion

Hola que tal, mi consulta es la siguiente:
Estoy teniendo problemas con el Siu Guarani… desde el autogestion.
Los alumnos quieren generar un certificado de alumno regular y cuando lo genera a la hora de querer descargar en pdf no se descarga nada, tampoco salta ningun mensaje de error solo queda esperando y nunca se descarga el pdf. ¿Cuál podría ser el inconveniente?
Hace poco migramos al Guarani 3.20.2 y tuvimos algunos inconvenientes en su momento para imprimir las actas de cursado y examenes, eso ahora quedo bien pero el problema es desde el autogestion.
Saludos cordiales.

Hola Hector,

¿da algún error Jasper?

¿es algo parecido a este otro foro https://foro.comunidad.siu.edu.ar/index.php?topic=24349.0?

saludos.
2

Hola Leonel:
Yo le estoy ayudando a Hector con este problema.
Puse dos Jasper, para gestion en el 8081 y para autogestion en 8082, agregue en autogestion config.php:

  • Host donde se corre Jasper
    * - Ejemplo: 127.0.0.1
    */
    ‘jasper_host’ => ‘127.0.0.1’,

             /**
              * Puerto donde se corre Jasper
              *  - Ejemplo: 8081
              */
             'jasper_port' => '8082',
    

);

Tambien en el archivo vendor/siu/chulupi-framework/src/SIU/Chulupi/util/VistaJasperreports.php de Autogestión cambiar el puerto en la función cargar_jasper cambie el puerto al 8082.
Pero no funciona.
Cuando solicitamos algo por autogestion, no da error, sino que parece como que no genera el link para descargar el pdf. Aparece el icono, dice que se genero todo bien, pero cuando vas a descargar no tiene nada. Si se inspecciona el elemento, no tiene el link de ningun archivo.
En los log de la aplicacion no aparece nada raro. Te cargo lo que veo.
Por lo que me reporta la gente, nada de lo que sea pdf funciona, ni certificados ni listado de alumnos.
Saludos


20220805_083551___4799.log.zip (5.08 KB)

Hola Rodrigo, gracias por los logs!!!

A partir de la versión 3.20.1 podes configurar el puerto del Jasper (ticket #42691).

Tambien en el archivo vendor/siu/chulupi-framework/src/SIU/Chulupi/util/VistaJasperreports.php de Autogestión cambiar el puerto en la función cargar_jasper cambie el puerto al 8082.
No hace falta, ya que en la función [b]cargar_jasper_host[/b] de [b]src/siu/bootstrap.php[/b] ya define la constante [b]JAVA_HOSTS[/b] con lo que configuraste.

Estaría bueno ver el log de cuando haces click en el botón de “Descargar certificado”, en el mismo dice algo como sigue:

--  EJECUTANDO ACCION 'siu\operaciones\solicitudes\controlador::accion__descargar_comprobante'

¿probaron haciendo el downgrade a la librería “siu-toba/jasper”: “5.6.1”?
¿los logs de Jasper dan algún mensaje, lo pueden correr con nivel de debug 5 para que sea mas verbose (ver esta respuesta)?

saludos.
2

Hola Leonel:
Te veo por todo lados.
Te cuento, ahora anda, ahora. Reinicie la maquina, cambie el apc.shm_size a 256 MB, y empezo a andar. El problema que tengo es que sabemos que a la tarde deja de funcionar. No se porque pero se rompe, y no anda ni gestion ni autogestion, no se pueden imprimir actas, no anda nada del pdf. No sabemos que es, el log solo dice:
[CRITICAL][toba] java_InternalException:
[TRAZA]

java_ThrowExceptionProxyFactory->getProxy 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 223

java_Arg->getResult 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 388

java_Client->getWrappedResult 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 394

java_Client->getResult 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 588

java_Client->invokeMethod 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1795

java_JavaProxy->__call 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1894

java_AbstractJava->__call 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 2042

Java->__call 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php, lInea 319

toba_vista_jasperreports->completar_con_datos 

Archivo: /usr/local/proyectos/guarani/personalizacion/php/operaciones/examenes/actas/imprimir_acta/ci_edi_imprimir_acta_examen_unpsjb.php, lInea 121

ci_edi_imprimir_acta_examen_unpsjb->vista_jasperreports 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/lib/salidas/toba_vista_jasperreports.php, lInea 272

toba_vista_jasperreports->generar_salida 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 331

toba_solicitud_web->servicio__vista_jasperreports 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 185

toba_solicitud_web->procesar_servicios 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_solicitud_web.php, lInea 60

toba_solicitud_web->procesar 

Archivo: /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/nucleo/toba_nucleo.php, lInea 96

toba_nucleo->acceso_web 

Archivo: /usr/local/proyectos/guarani/www/aplicacion.php, lInea 33

Y no anda mas.
El tema de “¿probaron haciendo el downgrade a la librería “siu-toba/jasper”: “5.6.1”?”
No se a que te referis ni como hacerlo. Quizas deberiamos seguir por gds o tener algun tipo de reunion o no se que mas hacer.
Saudos

Hola Rodrigo,

El tema de "¿probaron haciendo el downgrade a la librería "siu-toba/jasper": "5.6.1"?" No se a que te referis ni como hacerlo. Quizas deberiamos seguir por gds o tener algun tipo de reunion o no se que mas hacer.

Seria hacer los pasos de la Respuesta #8.

En Autogestión seria como sigue:

  1. Comentar la linea 39 en src/siu/Install.php (donde hace static::ajustarJasperPhp74($vendorDir);).
  2. Agregar en composer.json la dependencia “siu-toba/jasper”: “5.6.1”:

  "require": {
    "php": "7.4.*",
    "siu-toba/jasper": "5.6.1",
    "siu/chulupi-framework": "2.4.*",
    "siu/arai-cli": "3.0.0",
    "ext-pgsql": "*",
    "ext-pdo_pgsql": "*",
    "ext-gd": "*",
    "ext-curl": "*",
    "ext-apcu": "*",
    "ext-mbstring": "*",
    "ext-xml": "*",
    "ext-zip": "*"
  },

  1. En composer.lock tambien cambia donde dice “siu-toba/jasper”: “dev-master” por “siu-toba/jasper”: “5.6.1”.
  2. Ejecuta composer update siu-toba/jasper
  3. En php.ini configurar la directiva java.pipe_dir a un directorio temporal con permisos de escritura (revisar como queda la variable de entorno JAVA_PIPE_DIR). Si modificando la directiva java.pipe_dir no funciona entonces dar permisos a la carpeta /dev/shm (yo le di chmod 7777 -R /dev/shm).
  4. Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
  5. Reiniciar Apache.
  6. Reinicia Jasper.

Contame si con eso se soluciona!!!

Esto lo estamos viendo con el resto de los módulos del SIU en la issue 205.

saludos.
2

Hola Leonel:
Hice lo eso y quedo peor. Ahora tira:
protocol error: , Invalid document end at col 1. Check the back end log for OutOfMemoryErrors. fread(): Length parameter must be greater than 0

Le no esta habilitado el display_erro, esta en off y la directiva error_reportin esta E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE ya que habia encontrado en el foro que por ahi el notice daba error.
No se que le paso ahora, ni como arreglarlo. La gente de la facultad se esta empezando a desesperar…
Saludos

Hola Rodrigo,

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

Acá Mauricio da una solución: [SOLUCIONADO]Como instalar Jasper, ireport e integrarlo con toba en Windows XP - nº 7 por mlandaida - Toba - Desarrollo - Foro Comunidad SIU

La mayoría de los casos se soluciona haciendo un downgrade a la librería “siu-toba/jasper”: “5.6.1”, pero tenes que tener el cuenta del punto 5 en adelante.

saludos.
2

Si, vi eso que me mandas, pero es de xp. Igual mire el php.ini lo que dice ahi:
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE
display_errors = Off

Asi esta el php.ini No muestra los errores ni las notice. No anda. No se que mas tocarle ni que hacer. Estamos teniendo muchos problemas con los alumnos y el personal me esta escribiendo todo el dia.
No se que decirles.

Hola Rodrigo,

Crea un GDS y poneme el numero del mismo en este foro.

En el GDS ya mandame logs, configuración de PHP y si genera algún PDF adjuntamelo.

saludos.

Se sigue en GDS 59310.

Posible solución: Utilizar librería siu-toba/jasper en la versión 5.6.1.2:

Pasos para Guaraní Gestión (los pasos 1, 2 y 3 hacer solo en versiones inferiores a la 3.20.3):

  1. Comentar/eliminar las lineas donde dice static::ajustarJasperPhp74(); en src/SIU/Guarani/Scripts/Composer.php (también la función ajustarJasperPhp74).
  2. En composer.json cambiar a “siu-toba/jasper”: “5.6.1.2”, ej:
    "require": {
	        "php": "7.4.*",
	        "siu-toba/framework": "~3.3",
	        "siu/instalador": "^1.9",
	        "siu-toba/jasper": "5.6.1.2", 
  1. Ejecutar composer update siu-toba/jasper, ej salida del comando:
Lock file operations: 0 installs, 1 update, 0 removals - Downgrading siu-toba/jasper (dev-master => v5.6.1.2) Writing lock file Installing dependencies from lock file (including require-dev) Package operations: 0 installs, 1 update, 0 removals - Downloading siu-toba/jasper (v5.6.1.2) - Downgrading siu-toba/jasper (dev-master => v5.6.1.2): Extracting archive
  1. Configurar la directiva java.pipe_dir en /etc/php/7.4/apache2/php.ini apuntado un directorio con permisos de escritura y lectura.
  2. Si configurando la directiva java.pipe_dir no funciona, entonces dar permisos a la carpeta /dev/shm (yo le di chmod 7777 -R /dev/shm).
  3. Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
  4. Reiniciar Apache.
  5. Reinicia Jasper.

Pasos para Guaraní Autogestión (los pasos 1, 2 y 3 hacer solo en versiones inferiores a la 3.20.3):

  1. Comentar/eliminar las lineas donde dice static::ajustarJasperPhp74($vendorDir); en src/siu/Install.php (también la función ajustarJasperPhp74).
  2. En composer.json agregar “siu-toba/jasper”: “5.6.1.2” y en composer.lock cambiar donde diga “dev-master” a “5.6.1.2” en lo que respecta a la versión de siu-toba/jasper, ej:

composer.json:

  "require": {
    "php": "7.4.*",
    "siu/chulupi-framework": "2.4.*",
    "siu/arai-cli": "3.0.0",
    "siu-toba/jasper": "5.6.1.2",

composer.lock:

    "name": "siu-toba/jasper",
    "version": "v5.6.1.2",
    "siu-toba/jasper": "5.6.1.2",
  1. Ejecutar composer update siu-toba/jasper, ej salida del comando:
Package operations: 0 installs, 1 update, 0 removals - Downgrading siu-toba/jasper (dev-master => v5.6.1.2): Extracting archive
  1. Configurar la directiva java.pipe_dir en /etc/php/7.4/apache2/php.ini apuntado un directorio con permisos de escritura y lectura.
  2. Si configurando la directiva java.pipe_dir no funciona, entonces dar permisos a la carpeta /dev/shm (yo le di chmod 7777 -R /dev/shm).
  3. Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
  4. Reiniciar Apache.
  5. Reinicia Jasper.

Luego dos instancias de Jasper en diferentes puertos, una para Gestión y otra para Autogestión, ej:

Gestión:

java -Duser.language=es -Duser.country=AR -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5 /tmp/jasper.log &>/dev/null &

Autogestión:

java -Duser.language=es -Duser.country=AR -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/autogestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8082 5 /tmp/jasper.log &>/dev/null &

Aquí pueden ver como se configuran.

saludos.
4

Hola Leonel,

en UNLP estamos con el problema que el Jasper se cuelga pero no muere, y estamos reiniciando el servicio todo el tiempo. Estamos usando 5.6.2 con OpenJDK 11.0.15. Uds recomiendan ir a 5.6.1?

Saludos
Alejandro Sabolansky

Hola Alejandro,

en UNLP estamos con el problema que el Jasper se cuelga pero no muere, y estamos reiniciando el servicio todo el tiempo.
Claro, eso pasa con siu-toba/jasper 5.6.2
Estamos usando 5.6.2 con OpenJDK 11.0.15. Uds recomiendan ir a 5.6.1?
Pasen mejor a la 5.6.1.1 siguiendo los pasos del mensaje anterior.

Esto va a salir arreglado para la versión 3.21.0 con el ticket #42246.

saludos.
2

cual era el comando para reiniciar el Jasper??

Hola @javierluna261

Podes matar el proceso por puerto, ver How to Kill a Process Using a Port in Linux, y luego lo volves a ejecutar, ej:

lsof -i :8081 -t

kill -9 <pid>

java -Djavax.xml.parsers.DocumentBuilderFactory=com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl -Djavax.xml.parsers.SAXParserFactory=com.sun.org.apache.xerces.internal.jaxp.SAXParserFactoryImpl -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5

saludos.
[size=1pt]2[/size]