Error en el Servidor de Reportes - Guaraní v 3.23.0

Estimados,

estamos probando la versión 3.23.0 sobre Debian 13.

En principio con java versión 21 (que instala el Debian 13) y luego realizamos la prueba con la versión de java que tenemos en producción que es la 11.0.14 (con el Guaraní versión 3.22.0), y el resultado (con nivel debug 3), en ambos casos, es el siguiente:

Apr 06 17:02:39 VMBridge INFO : VM : 11.0.14@https://openjdk.java.net/
Apr 06 17:02:39 VMBridge INFO : VMBridge version : 5.5.2
Apr 06 17:02:39 VMBridge INFO : logFile :
Apr 06 17:02:39 VMBridge INFO : default logLevel : 3
Apr 06 17:02:39 VMBridge INFO : socket : SERVLET:8081
Apr 06 17:02:39 VMBridge INFO : java.ext.dirs : null
Apr 06 17:02:39 VMBridge INFO : php.java.bridge.base: /home/gustavo
Apr 06 17:02:39 VMBridge INFO : thread pool size : 20
Apr 06 17:02:39 VMBridge INFO : JavaBridgeRunner started on port INET:8081

Por último, con el debug en 5, para mayor detalle, adjunto la salida.

jasper.log (196,1 KB)

Esperando sugerencias, los saludamos cordialmente.

Buenas tardes Gustavo!

Hay varios puntos que quiero corroborar:

1- Podrías adjuntarme la versión de OpenJDK que estan usando? Se obtiene con el comando java -version
2- El mensaje “Found two components for namespace” indica que puede haber módulos de JavaBridge que estan duplicados. Es extraño el mensaje y es algo que se debería revisar, pero puede no ser lo que está generando los inconvenientes.
3- En el log con nivel de debug seteado en 5, se puede ver el siguiente error:

Apr 06 18:42:36 VMBridge ERROR: An exception occured: net.sf.jasperreports.engine.JRException: Error saving file : /usr/local/proyectos/guarani/temp/800SIUMAT048.jrxml.jasper
net.sf.jasperreports.engine.JRException: Error saving file : /usr/local/proyectos/guarani/temp/800SIUMAT048.jrxml.jasper
	at net.sf.jasperreports.engine.util.JRSaver.saveObject(JRSaver.java:93)
	at net.sf.jasperreports.engine.util.JRSaver.saveObject(JRSaver.java:66)
	at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:272)
	at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:252)
	at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:551)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1050)
	at php.java.bridge.Request.handleRequest(Request.java:415)
	at php.java.bridge.Request.handleRequests(Request.java:491)
	at php.java.bridge.http.ContextRunner.run(ContextRunner.java:146)
	at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)
Caused by: java.io.FileNotFoundException: /usr/local/proyectos/guarani/temp/800SIUMAT048.jrxml.jasper (Permiso denegado)
	at java.base/java.io.FileOutputStream.open0(Native Method)
	at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
	at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:187)
	at net.sf.jasperreports.engine.util.JRSaver.saveObject(JRSaver.java:83)

Qué permisos tiene la carpeta temp?

java version “11.0.14” 2022-01-18 LTS
Java™ SE Runtime Environment 18.9 (build 11.0.14+8-LTS-263)
Java HotSpot™ 64-Bit Server VM 18.9 (build 11.0.14+8-LTS-263, mixed mode)

Obs: Ésta versión de Java la tenemos andando en producción con el Guaraní 3.22.0.

El error también aparece con la versión que instala por defecto el Debian 13: openjdk version “21.0.10” 2026-01-20

Permisos de la carpeta temp: 775 para dueño y grupo www-data

En la carpeta temp otorgué permiso de escritura para “Otros” y salió andando.

Hola buenos tardes tengo el mismo problema en una instalación en debian 12.
Agregue los permisos de escritura en temp para otros, pero no se generar los reportes, solo queda la pagina en blanco.

Los permisos en el directorio temp/
drwxr-xr-x 5 www-data www-data 4096 may 7 15:40 temp

Versión de Java.
java -version
openjdk version “17.0.18” 2026-01-20
OpenJDK Runtime Environment (build 17.0.18+8-Debian-1deb12u1)
OpenJDK 64-Bit Server VM (build 17.0.18+8-Debian-1deb12u1, mixed mode, sharing)

El script para iniciar Jasper.

cat guarani-javabridge.sh 
#!/bin/bash
/usr/bin/java \
    -cp "/usr/local/proyectos/guarani/vendor/siu-toba/jasper/JavaBridge/WEB-INF/lib/*" \
    -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 php.java.bridge.Standalone SERVLET:8081 3 /var/log/guarani_bridge.log

Mi archivo, para levantar el servicio con systemd

/etc/systemd/system/guarani-java.service
[Unit]
Description=PHP-Java Bridge para SIU-Guarani Jasper Reports
After=network.target

[Service]
Type=simple
User=www-data
Group=www-data
ExecStart=/usr/local/bin/guarani-javabridge.sh
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target


La salida de Jasper.

May 07 16:57:55 VMBridge INFO : VMBridge version             : 5.5.2    
May 07 16:57:55 VMBridge INFO : logFile             : /var/log/guarani_bridge.log
May 07 16:57:55 VMBridge INFO : default logLevel    : 3
May 07 16:57:55 VMBridge INFO : socket              : SERVLET:8081
May 07 16:57:55 VMBridge INFO : java.ext.dirs       : null
May 07 16:57:55 VMBridge INFO : php.java.bridge.base: /var/www
May 07 16:57:55 VMBridge INFO : thread pool size    : 20
May 07 16:57:55 VMBridge INFO : JavaBridgeRunner started on port INET:8081
- Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
- Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
- Found two components for namespace http://jasperreports.sourceforge.net/jasperreports/components
- Compilation error
org.eclipse.jdt.internal.compiler.classfmt.ClassFormatException
	at org.eclipse.jdt.internal.compiler.classfmt.ClassFileReader.<init>(ClassFileReader.java:298)
	at net.sf.jasperreports.engine.design.JRJdtCompiler$1.findType(JRJdtCompiler.java:255)
	at net.sf.jasperreports.engine.design.JRJdtCompiler$1.findType(JRJdtCompiler.java:192)
	at org.eclipse.jdt.internal.compiler.lookup.LookupEnvironment.askForType(LookupEnvironment.java:93)
	at org.eclipse.jdt.internal.compiler.lookup.UnresolvedReferenceBinding.resolve(UnresolvedReferenceBinding.java:43)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:84)
	at org.eclipse.jdt.internal.compiler.lookup.ParameterizedTypeBinding.resolve(ParameterizedTypeBinding.java:776)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveType(BinaryTypeBinding.java:64)
	at org.eclipse.jdt.internal.compiler.lookup.BinaryTypeBinding.resolveTypesFor(BinaryTypeBinding.java:750)
	at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier15.computeSubstituteMethod(MethodVerifier15.java:325)
	at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier15.isInterfaceMethodImplemented(MethodVerifier15.java:403)
	at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.computeInheritedMethods(MethodVerifier.java:475)
	at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.computeInheritedMethods(MethodVerifier.java:352)
	at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier.verify(MethodVerifier.java:586)
	at org.eclipse.jdt.internal.compiler.lookup.MethodVerifier15.verify(MethodVerifier15.java:412)
	at org.eclipse.jdt.internal.compiler.lookup.SourceTypeBinding.verifyMethods(SourceTypeBinding.java:1491)
	at org.eclipse.jdt.internal.compiler.lookup.CompilationUnitScope.verifyMethods(CompilationUnitScope.java:722)
	at org.eclipse.jdt.internal.compiler.Compiler.process(Compiler.java:509)
	at org.eclipse.jdt.internal.compiler.Compiler.compile(Compiler.java:329)
	at net.sf.jasperreports.engine.design.JRJdtCompiler.compileUnits(JRJdtCompiler.java:167)
	at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:201)
	at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:354)
	at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:270)
	at net.sf.jasperreports.engine.JasperCompileManager.compileToFile(JasperCompileManager.java:252)
	at net.sf.jasperreports.engine.JasperCompileManager.compileReportToFile(JasperCompileManager.java:551)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:569)
	at php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1054)
	at php.java.bridge.Request.handleRequest(Request.java:415)
	at php.java.bridge.Request.handleRequests(Request.java:491)
	at php.java.bridge.http.ContextRunner.run(ContextRunner.java:146)
	at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)

Muchas Gracias.
Saludos.