Error al imprimir actas de final desde Autogestión.

Hola, estamos en 3.20.

Los profesores cargaron notas de final en Autogestión y al querer imprimir actas sale el mensaje rosa “Falló la impresión del acta.”

Desde Gestión las podemos imprimir sin problemas.

Log de Autogestión

================================================================================
=================================   ERRORES   ==================================
================================================================================

clase: java_InternalException
mensaje:
traza: [TRAZA]

---[ 0 ]-----------------------------------------

- function: java_ThrowExceptionProxyFactory->getProxy
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 223

---[ 1 ]-----------------------------------------

- function: java_Arg->getResult
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 388

---[ 2 ]-----------------------------------------

- function: java_Client->getWrappedResult
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 394

---[ 3 ]-----------------------------------------

- function: java_Client->getResult
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 588

---[ 4 ]-----------------------------------------

- function: java_Client->invokeMethod
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 1795

---[ 5 ]-----------------------------------------

- function: java_JavaProxy->__call
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 1894

---[ 6 ]-----------------------------------------

- function: java_AbstractJava->__call
- file: /usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, linea 2042

---[ 7 ]-----------------------------------------

- function: Java->__call
- file: /usr/local/proyectos/g3w3_320/vendor/siu/chulupi-framework/src/SIU/Chulupi/util/VistaJasperreports.php, linea 298

---[ 8 ]-----------------------------------------

- function: SIU\Chulupi\util\VistaJasperreports->completar_con_datos
- file: /usr/local/proyectos/g3w3_320/src/siu/modelo/transacciones/impresion_actas_examen.php, linea 725

---[ 9 ]-----------------------------------------

- function: siu\modelo\transacciones\impresion_actas_examen->generar_comprobante
- file: /usr/local/proyectos/g3w3_320/src/siu/operaciones/impresion_actas_examen/controlador.php, linea 41

---[ 10 ]-----------------------------------------

- function: siu\operaciones\impresion_actas_examen\controlador->accion__imprimir_acta
- file: /usr/local/proyectos/g3w3_320/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/controlador.php, linea 420

---[ 11 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\controlador->invocar_accion
- file: /usr/local/proyectos/g3w3_320/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/controlador.php, linea 154

---[ 12 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\controlador->procesar_accion
- file: /usr/local/proyectos/g3w3_320/src/siu/extension_kernel/controlador_g3w2.php, linea 97

---[ 13 ]-----------------------------------------

- function: siu\extension_kernel\controlador_g3w2->procesar_accion
- file: /usr/local/proyectos/g3w3_320/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/AccesoWeb.php, linea 107

---[ 14 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\AccesoWeb::procesar_request
- file: /usr/local/proyectos/g3w3_320/vendor/siu/chulupi-framework/src/SIU/Chulupi/nucleo/AccesoWeb.php, linea 25

---[ 15 ]-----------------------------------------

- function: SIU\Chulupi\nucleo\AccesoWeb::procesar
- file: /usr/local/proyectos/g3w3_320/src/siu/www/index.php, linea 15


########################################################################################################################

--F<1>:E<1>:W<0>:T<0 s>:M<0 Mb>--

Log de Apache

[Sat Oct 30 12:01:33.110625 2021] [php7:notice] [pid 6789] [client 190.246.15.14:8011] PHP Notice:  Array to string conversion in /usr/local/proyectos/g3w3_320/vendor/siu/chulupi-framework/src/SIU/Chulupi/util/modelo/ProcesadorDatos.php on line 167, referer: http://34.232.173.37/upe/notas_mesa_examen/edicion/a194b1f5b33fdebc6252921fabb28b9058d99fa73dcf1e46d769ce776f7cdd70e92646170b6b707f

Gracias por cualquier ayuda, mientras sigo investigando.

Hola Fernando:

Realizando unas pruebas la semana pasada, ese error se produjo porque no estaba levantado el servicio de Jasper Reports. Te sugiero que verifiques que el servicio este corriendo en el servidor.

¡Saludos y espero haberte ayudado!

Gracias Diego,

Al principio, el jaspers estaba caído… pero directamente ponía la pantalla en error 500 del navegador…

Lo subimos, y en Gestión están saliendo las actas… el error que menciono es en Autogestión.

el jaspers que está corriendo es el de Gestión

java -jar /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081

pero los mensajes de error son del path de Autogestión

/usr/local/proyectos/g3w3_320/vendor/siu-toba/jasper/JavaBridge/java/Java.inc

Por lo que leí en otros foros hay un jaspers solo que corre, supongo que ese Java.inc de Autogestión debería estar usando el otro…

El mensaje que sale en el log de Apache ahora es

[Mon Nov 01 10:21:27.317179 2021] [php7:error] [pid 26369] [client 190.246.15.14:55890] script '/usr/local/proyectos/g3w3_320/src/siu/www/_comp/rs.php' not found or unable to stat, referer: http://34.232.173.37/upe/actas_examen/1aed028169ed6c604e100e21530cf5e4f0e14eb4dece121d45f482f8509e1b98709b9e00e460a1c4

por el cual ya hay un foro abierto en https://foro.comunidad.siu.edu.ar/index.php?topic=22732.0

Solucionado.

Vi en foros de correr jaspers con level 5 de debug en consola.

Maté el proceso anterior, para correrlo con level 5…
Al reiniciar el nuevo, se arregló el problema…

Lo volví a matar para correrlo sin level 5… y ya quedó andando bien.

Hola Fernando, gracias por el aporte!!!

Por lo que leí en otros foros hay un jaspers solo que corre, supongo que ese Java.inc de Autogestión debería estar usando el otro....

Si Gestión y Autogestión están en el mismo servidor utilizan el mismo servicio de Jasper para imprimir los PDFs ya que utilizan el Jasper corriendo en el puerto 8081.

Solucionado.

Vi en foros de correr jaspers con level 5 de debug en consola.

Maté el proceso anterior, para correrlo con level 5…
Al reiniciar el nuevo, se arregló el problema…

Lo volví a matar para correrlo sin level 5… y ya quedó andando bien.

¿El nivel 5 de debug daba el error?
Nos pasas links a esos foros que mencionas.

Saludos.
2

Hola Fernando:

Nos podrás indicar la ruta del log de autogestión y su nombre así revisamos el mismo en nuesto servidor, ya que estamos con un error de Jasper hace varios días con un error de jasper.

Saludos y Gracias

¿El nivel 5 de debug daba el error?

El error lo veía en los logs de Autogestión. Como no me alcanzaba para solucionar. Seguí leyendo posts de acá … hasta que vi que recomendaban poner nivel 5 al proceso java de jaspers para ver directamente los errores de jaspers.
La primera vez que puse nivel 5, daba error porque ya estaba corriendo el proceso…
Lo di de baja… Y lo corrí de nuevo con nivel 5.

Fui a “Imprimir actas” que era lo que me daba error y esta vez imprimió sin problemas…

Lo que me hace pensar que el jaspers estaba corriendo (en Gestión me imprimía sin problemas) pero algo había en la relación con 3w , que al dar de baja y reiniciar, se “arregló solito” …

Nos pasas links a esos foros que mencionas.

Hablaba de posts de este mismo foro. Debí haber dicho posts en vez de foros…
Ejemplos:

Nos podrás indicar la ruta del log de autogestión y su nombre así revisamos el mismo en nuesto servidor, ya que estamos con un error de Jasper hace varios días con un error de jasper.

/instalacion/log/<ACC_ID>

Son todos pequeños archivos con el timestamp en el nombre …

Perfecto Fernando, me alegro que lo hayan podido solucionar!!!

saludos.

Tengo que volver, ya que pasa bastante seguido que se “cae” el jaspers para Autogestión pero sigue funcionando en Gestión…

¿Cómo me doy cuenta? Un docente no puede imprimir acta de examen. Recibe mensaje rosa “Falló la impresión del acta”. en los logs veo los errores mencionados más arriba
Entro como el docente a Autogestión, y puedo corroborar que es verdad.

Voy a Gestión, y el acta se imprime sin problemas…

¿Cómo lo estoy solucionando? Con el script que pusieron en algún foro…
sh /etc/init.d/jasperServicio.sh stop
sh /etc/init.d/jasperServicio.sh start

Y vuelve a funcionar en Autogestión… Pero caído no estaba porque en Gestión nunca dejó de andar… Como que pierde algo en la conexión con Autogestión y lo recupera reiniciando… Pero pasa bastante seguido…

Hola Fernando,

¿Gestión y Autogestión están en distintos servidores, no?

¿que ocurre si lo levantas de la siguiente forma?


java -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar /path/to/3w/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5 /tmp/jasper.log &>/dev/null &

Quizás también podrían levantarlo automáticamente usando Supervisord, ver este foro.

Referencias:
https://codigofacilito.com/articulos/supervisord-linux
https://javierin.com/supervisord-un-gestor-de-procesos-para-linux/

saludos.
2

¿Gestión y Autogestión están en distintos servidores, no?
No. Están juntos.... eso es lo raro... deja de funcionar en un lado, pero sigue funcionando en el otro....

Ahora que estamos cerrando el perído lectivo y muchos docentes lo usan concurrentemente, el jaspers se está cayendo demasiado seguido…
Antes se caía 2/3 veces por año…
Ahora se nos cae hasta 2/3 por hora …

Acabo de ponerlo con Supervisord , a ver qué pasa

Cuando está “caido”, en el ps -aux | grep ‘SERVLET’ lo veo … por lo que no está caído realmente, si no que alguna parte no funciona.

En el log de apache veo ::

[Wed Dec 01 18:09:20.617057 2021] [php7:notice] [pid 9197] [client 190.246.6.37:54500] java_InternalException: \n[TRAZA]\n\t\n\tjava_ThrowExceptionProxyFactory->getProxy \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 223 \n\t\n\tjava_Arg->getResult \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 388 \n\t\n\tjava_Client->getWrappedResult \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 394 \n\t\n\tjava_Client->getResult \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 588 \n\t\n\tjava_Client->invokeMethod \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1795 \n\t\n\tjava_JavaProxy->__call \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 1894 \n\t\n\tjava_AbstractJava->__call \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/java/Java.inc, lInea 2042 \n\t\n\tJava->__call \nArchivo: /usr/local/proyectos/guarani/vendor/siu-toba/fr…SIGUE…, referer: http://34.232.173.37/guarani/3.15/aplicacion.php?ah=st61a7e3875988a2.98123510&ai=guarani||34000021&tz=1

Lo mismo más completo en el log de gestión

Version-PHP: 7.4.25
Servidor: 34.232.173.37
URI: /guarani/3.15/aplicacion.php?ah=st61a7e47fce58b2.79916028&ai=guarani||34000021&tcm=central&tz=1&ai=guarani||34000021&ts=vista_jasperreports&tsd=guarani||34000146,
Referrer: http://34.232.173.37/guarani/3.15/aplicacion.php?ah=st61a7e3875988a2.98123510&ai=guarani%7C%7C34000021&tz=1
Host: 190.246.6.37
==========
[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/php/operaciones/cursadas/actas/imprimir/ci_nav_imprimir_actas_comision.php, lInea 612

        ci_nav_imprimir_actas_comision->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



reiniciando jaspers (stop / start) se arregla… pero se vuelve a caer rápido.

Hola Fernando, gracias por los logs!!!

¿Tenes los logs que devuelve Jasper? Si usas supervisord los va a guardar en la carpeta /var/errJasper.log:


[supervisord]
nodaemon=true

[program:jasper]
priority=10
command=java -jar path/del/proyecto/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081
autostart=true
autorestart=true
stderr_logfile=/var/errJasper.log

Quizás conviene cambiar el comando a:

command=java -Duser.language=es -Duser.country=AR -Djava.awt.headless=true -jar path/del/proyecto/gestion/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/JavaBridge.jar SERVLET_LOCAL:8081 5

¿tienen personalizaciones en los reportes Jaspers?

saludos.
2

No sé si será relevante pero …

Tengo dos jasper
uno en path/to/gestion/vendor/siu-toba/jasper
otro en path/to/3w/vendor/siu-toba/jasper

Se supone que son los dos iguales ?? Cuál tendría que levantar, el de gestión o el de 3w ??? O es lo mismo …? Quién lee de quién? Gestión de 3w ? o 3e de gestión ?

Actualización:

Creo que es muy relevante… Si corro el de Gestión funciona para actas en Gestión y no para 3w… Si corro el de 3w, funciona para actas en Autogestión y no para Gestión …

Tengo dos jasper uno en path/to/gestion/vendor/siu-toba/jasper otro en path/to/3w/vendor/siu-toba/jasper

Se supone que son los dos iguales ?? Cuál tendría que levantar, el de gestión o el de 3w ???

Son lo mismo, apuntan a la misma librería que se descarga por Composer, pueden levantar cualquiera de los dos y seria lo mismo.

Quién lee de quién? Gestión de 3w ? o 3e de gestión ?

En realidad se levanta el servidor de Jasper el cual queda corriendo en el puerto 8081, ambos módulos simplemente usan dicho Jasper corriendo en el puerto 8081 para generar los PDFs. Es como usar el mismo servidor de Apache o Postgres.

saludos.
2

Ya me queda claro y puedo replicar el problema una y otra vez …

Corro cualquiera de los jaspers y funciona en el primero módulo que use.

Reinicio jasper e imprimo primero en Gestión, anda bien Gestión. Y en Autogestión da error rosa “Falló la impresión del acta”

Reinicio jasper e imprimo primero en Autogestión, anda bien Autogestión. Y en Gestión da error pantalla en blanco.

Probado con el mismo navegador y con distintos navegadores …

Hoy están usando concurrentemente Gestión (por la preinscripción) y Autogestión (docentes cerrando actas).
Me llaman que hay un error en uno… reinicio… el primero que lo usa, lo deja válido para ese módulo…
Al rato me llaman los que usan el otro módulo… y así se van alternando sucesivamente.

No sé como hacer para que funcione el jasper en los dos módulos a la vez…

Hola Fernando, gracias por el dato!!!

¿como te quedo configurado el supervisord?
¿te da algún error en el log de Jasper?

Nos podes pasar los logs de Autogestión cuando da error rosa “Falló la impresión del acta” y Gestión da error pantalla en blanco.

Yo acá en local lo tengo dockerizado, y cada proyecto tiene su Jasper corriendo dentro del contenedor en el puerto 8081, y el Jasper se reinicia junto con el contenedor.

saludos.
2

Fernando, probemos lo siguiente como solución alternativa:

  1. Correr dos instancias de Jasper, una en el puerto 8081 para Gestión y otra en el 8082 para Autogestión.

Gestión:

java -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

Autogestión:

java -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
  1. Luego 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 donde dice:
if (!defined("JAVA_HOSTS")) define ("JAVA_HOSTS", "127.0.0.1:8082");

Contanos luego si con ese cambio se soluciona el problema.

saludos.
2