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):
- Comentar/eliminar las lineas donde dice static::ajustarJasperPhp74(); en src/SIU/Guarani/Scripts/Composer.php (también la función ajustarJasperPhp74).
- 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",
- 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
- Configurar la directiva java.pipe_dir en /etc/php/7.4/apache2/php.ini apuntado un directorio con permisos de escritura y lectura.
- 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).
- Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
- Reiniciar Apache.
- Reinicia Jasper.
Pasos para Guaraní Autogestión (los pasos 1, 2 y 3 hacer solo en versiones inferiores a la 3.20.3):
- Comentar/eliminar las lineas donde dice static::ajustarJasperPhp74($vendorDir); en src/siu/Install.php (también la función ajustarJasperPhp74).
- 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",
- 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
- Configurar la directiva java.pipe_dir en /etc/php/7.4/apache2/php.ini apuntado un directorio con permisos de escritura y lectura.
- 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).
- Poner la directiva display_errors = Off en el php.ini, ya que sino mete warnings/notices en el PDF y queda corrupto.
- Reiniciar Apache.
- 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