Error imprimir actas de examen

Hola,

Tenemos un entorno de testing de nuevas versiones. Cuando actualizo a la v3.19.1 de guarani (desde la v.3.18.1) y quiero imprimir un acta de examen, la pestaña que abre queda en blanco con el error: Call to a member function read() on bool

En los logs de apache (error.log) veo las siguentes lineas:

[Thu Oct 07 13:30:03.702003 2021] [php7:warn] [pid 30300] [client 192.168.88.232:39382] PHP Warning:  dir(/usr/local/proyectos/guarani/vendor/siu-toba/jasper/JasperReports/JasperJavaBridge5.6/JavaBridge): failed to open dir: Permission denied in /usr/local/proyectos/guarani/vendor/siu-toba/framework/php/lib/toba_manejador_archivos.php on line 193, referer: https://gestion.udc.edu.ar/guarani/aplicacion.php?ah=st615f2087640cc8.12354505&ai=guarani%7C%7C38000085&tz=1

[Thu Oct 07 13:30:03.702180 2021] [php7:notice] [pid 30300] [client 192.168.88.232:39382] Call to a member function read() on bool, referer: https://gestion.udc[Thu Oct 07 13:30:03.702180 2021] [php7:notice] [pid 30300] [client 192.168.88.232:39382] Call to a member function read() on bool, referer: https://gestion.udc

Estoy con un Debian 10, con Java: 

openjdk 11.0.7 2020-04-14
OpenJDK Runtime Environment (build 11.0.7+10-post-Debian-3deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.7+10-post-Debian-3deb10u1, mixed mode, sharing)

Composer y Yarn:
composer: Composer 1.8.4 2019-02-11 10:52:10
yarn: 1.22.4

El servicio de Jasper esta activo, y tenemos en el archivo /etc/rc.local lo siguiente:

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

Con los siguientes permisos (estoy con otro usuario - testudc - que es sudo):
-rwxr-xr-x 1 root root 426 sep 13  2019 /etc/rc.local

El proyecto esta en /usr/lib/proyectos, y los permisos de las carpetas las revise nuevamente y estan como deben estar según la documentación de instalación:

sudo chown -R www-data:www-data www temp instalacion vendor/siu-toba/framework/www vendor/siu-toba/framework/temp

sudo chmod 775 -R www temp instalacion vendor/siu-toba/framework/www vendor/siu-toba/framework/temp

Que podría ser? como puedo debuggear un poco más? gracias de antemano.

Hola Nicolás,

Parece que Apache no tiene permisos para leer la carpeta /usr/local/proyectos/guarani/vendor/siu-toba/jasper/JasperReports/JasperJavaBridge5.6/JavaBridge (fíjate que también le faltan barras a ese path).

El error se da en la función buscar_archivos_directorio_recursivo de vendor/siu-toba/framework/php/lib/toba_manejador_archivos.php donde hace $d = dir( $directorio );.
Habría que debuggear la variable $directorio para ver que devuelve.

¿ejecutaste el comando composer install, quizás tenes viejas las dependencias? Ver: https://documentacion.siu.edu.ar/wiki/SIU-Guarani/version3.19.0/actualizacion/gestion

saludos.
2

Hola Nicolás,

Creo que encontré el error, veo estos dos cambios en la versión 3.19.1:

https://colab.siu.edu.ar/trac/guarani3/changeset/53416/nodos/udc/gestion/trunk/3.19.1
https://colab.siu.edu.ar/trac/guarani3/changeset/53417/nodos/udc/gestion/trunk/3.19.1

¿por que hacen este copy?

php/3ros/JasperJavaBridge5.6 (copied from nodos/udc/gestion/trunk/3.18.0/php/3ros/JasperJavaBridge5.6)

Prueben sin personalizaciones para ver si todo funciona bien.

saludos.
2

Hola!,

Gracias por las respuestas!

La verdad que no sé porque está queriendo acceder al directorio "usr/local/proyectos/guarani/vendor/siu-toba/jasper/JasperReports/JasperJavaBridge5.6/JavaBridge", ya que no existe en el directorio de archivos.

La instalación de Jasper esta en "usr/local/proyectos/guarani/vendor/siu-toba/jasper/JasperReports/JavaBridge" tnto para el sub-directorio "java" que contiene el archivo Java.inc, como el sub-directorio "WEB-INF/lib" donde estan los archivos JavaBridge.jar y php-servlet.jar, todos en la version 5.5.2 (los que vienen en la instalacion original.

Ya realicé el "composer install" como dice la documentación.

Dos consultas: Como puedo "eliminar" esa carpeta "JavaBridge5.6" de php/3ros  (está vacía, no contiene archivos) ??, y como desactivo las personalizaciones para probar la impresion de las actas de examen? gracias!

Hola Nicolás,

Como puedo "eliminar" esa carpeta "JavaBridge5.6" de php/3ros (está vacía, no contiene archivos) ??
svn delete https://colab.siu.edu.ar/svn/guarani3/nodos/udc/gestion/trunk/3.19.1/php/3ros/JasperJavaBridge5.6/ -m "Se elimina carpeta php/3ros/JasperJavaBridge5.6"
y como desactivo las personalizaciones para probar la impresión de las actas de examen?

Podes revertir los cambios a la revisión r52559 que es la versión 3.19.1 sin las personalizaciones, seria ejecutar:

svn merge -r HEAD:52559 .

, luego deberías regenerar (comando bin/guarani regenerar). Todo esto hacelo en un entorno de prueba.

saludos.
2