PHP-JRU 0.1RC2… por favor vea http://robertbruno.wordpress.com/category/php-jru/

Ya esta disponible para la descarga el Release Candidate 2 de PHP-JRU 0.1, en el que se depura ciertos errores y se agregan funciones para generar formatos como html y odt.

Se ha visto mucho que al usar JAVA/Bridge 5 suele generara errores, muy probablemente sea porque no se ha configurado correctamente , para esto amplio un poco mas la explicación de como instalar y configurar Java/Bridge en el manual de uso.

20 Respuestas a “PHP-JRU 0.1RC2… por favor vea http://robertbruno.wordpress.com/category/php-jru/”


  1. 1 Pablo 17/12/2008 a las 7:39 PM

    Hola.

    Me alegra que saques una nueva versión.

    Yo sigo intentando usar esta librería.

    Como ya te comenté en el post anterior instalé java-bridge usando un .deb, y siguiendo el link que me pusiste he conseguido que reconozca el home de java. Pero sigo teniendo problemas con require_once().

    Según la documentación hay que descomprimir JavaBridge.jar que se encuentra en /usr/lib/php5. En mi caso se encuentra en /usr/lib/php5/20060613+lfs, pero no entiendo que es lo que hay que hacer al decir “descomprimir”. No tengo mucha idea de java. :-(

    He puesto este código:

    runReportToPdfFile(“listado_soportes”, “listado.pdf”, $parameters, $con);

    ?>
    y este es el resultado:

    Parse error: syntax error, unexpected ‘}’ in /usr/lib/php5/20060613+lfs/JavaBridge.jar on line 502

    A ver si salgo ya del atasco, que tengo ganas de usar esto.

    Gracias por todo.

  2. 2 Pablo 17/12/2008 a las 7:40 PM

    No se porqué el código no se ve bien. Lo pego de nuevo.

    runReportToPdfFile(“listado_soportes”, “listado.pdf”, $parameters, $con);

    ?>

  3. 3 Pablo 17/12/2008 a las 7:41 PM

    joerrrr.

    Ahora sin las etiquetas de php

    require(‘php-jru/php-jru.php’);
    require_once(‘/usr/lib/php5/20060613+lfs/JavaBridge.jar’);

    $jru= new JRU();

    #$jru->loadDirLibrary(“php-jru/jars”);

    $con= new JdbcConnection(“org.postgresql.Driver”,”aldiges”,”pablo”,”capgirall”);

    $parameters= new java(“java.util.HashMap”);

    $jru->runReportToPdfFile(“listado_soportes”, “listado.pdf”, $parameters, $con);

  4. 4 robertbruno 18/12/2008 a las 4:21 PM

    lo que tienes que descomprimir es el archivo java.inc y dicho archivo incluirlo dentro de tu script con require_one()

  5. 5 robertbruno 18/12/2008 a las 4:27 PM

    lo que tienes que hacer es descomprimir es el archivo java.inc y dicho archivo incluirlo dentro de tu script con require_one()

  6. 6 Daniel 19/01/2009 a las 6:36 PM

    Hola,
    Me sucede algo extraño, luego de insertar el código php para llamar al reporte, previamente compilado con iReport 3.0, se genera el archivo .pdf pero en blanco. He intentado varios días modificando cosas, cambiando versión el iReport y dejando sólo un texto que diga “hola mundo”, pero siempre genera el archivo pdf en blanco.
    ¿Me Puedes ayudarme a orientar lo que está sucediendo por favor?

    • 7 robertbruno 19/01/2009 a las 6:49 PM

      Pues quizás debas revisar que le estés pasando correctamente los parámetro y que estas indicando la conexión a la base de datos

  7. 8 Daniel 20/01/2009 a las 2:47 PM

    Puede ser, sin embargo el reporte para probar que hice contiene simplemente un cuadro de texto que dice “Hola Mundo” y sin ninguna conexión a la BD, ¿aun así es necesario establecer la conexión BD?
    Este es el código que utilizo para hacer el llamado:

    // INICIO
    require(“/usr/lib/php/modules/Java.inc”);
    require(“php-jru.php”);
    $jasperReportsLib = “/vhost/webiste/jars/”;

    $jru = new JRU();
    $jru->loadDirLibrary($jasperReportsLib);

    $parameters = new java (“java.util.HashMap”);
    $jru->runReportToPdfFile(“/vhost/website/reporte1.jasper”,”/vhost/website/reporte.pdf”,$parameters,null);
    // ***
    Al ejecutar esta página NO genera errores en ninguna parte y crea un archivo llamado “reporte.pdf”, entonces al revisar el contenido de ese reporte aparece en blanco.

    Muchas gracias por tu ayuda!

    • 9 robertbruno 21/01/2009 a las 3:03 PM

      Si es necesario indicar la conexión a la base datos, de lo contrario solo se generaría un reporte estático el cual no es necesario generarlo desde código, sin embargo seria útil para realizar pruebas por lo que tomare en cuanta esto para el próximo release.

  8. 10 bruli 30/04/2009 a las 5:50 PM

    Hola.

    Hace tiempo que sigo probando esto sin exito.

    Esta vez tengo bien configurado el módulo java-bridge:

    java support Enabled
    java bridge 5.2.2
    java.java_home /usr/lib/jvm/java-6-sun
    java.java /usr/lib/jvm/java-6-sun/jre/bin/java
    java.log_file
    java.log_level no value (use back-end’s default level)
    java.security_policy Off
    java command JAVA_HOME=/usr/lib/jvm/java-6-sun LD_LIBRARY_PATH=/usr/lib/php5/20060613+lfs: /usr/lib/jvm/java-6-sun/jre/bin/java -Djava.library.path=/usr/lib/php5/20060613+lfs -Djava.class.path=/usr/lib/php5/20060613+lfs/JavaBridge.jar -Djava.awt.headless=true -Dphp.java.bridge.base=/usr/lib/php5/20060613+lfs php.java.bridge.Standalone LOCAL:@java-bridge-cc5 2
    java server @java-bridge-cc5
    java status running

    He descargado php-jru-0.1RC2

    Esto es lo que tengo en el directorio web:

    clientes.jasper
    clientes.jrxml
    index.php
    php-jru/
    jars/
    JdbcConnection.php
    license.txt
    php-jru.php

    El contenido del archivo index.php:

    loadDirLibrary(“php-jru/jars/”);

    $con= new JdbcConnection(“org.postgresql.Driver”,”jdbc:postgresql://localhost/database”,”usuario”,”contraseña”);

    $parameters= new java(“java.util.HashMap”);

    $jru->runReportToPdfFile(“clientes.jasper”, “listado.pdf”, $parameters, $con->getConnection());
    ?>

    Y el resultado:
    Fatal error: Uncaught [[o:Exception]:”java.lang.Exception: CreateInstance failed: new org.altic.jasperReports.JdbcConnection. Cause: java.lang.ClassNotFoundException: Could not find org.altic.jasperReports.JdbcConnection in java_require() path. Please check the path and the SEL and File permissions. VM: 1.6.0_13@http://java.sun.com/” at: #-10 php.java.bridge.DynamicJavaBridgeClassLoader.loadClass(DynamicJavaBridgeClassLoader.java:278) #-9 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) #-8 java.lang.Class.forName0(Native Method) #0 /usr/share/php/Java.inc(265): java_ThrowExceptionProxyFactory->getProxy(8, NULL, false) #1 /usr/share/php/Java.inc(417): java_Arg->getResult(false) #2 /usr/share/php/Java.inc(420): java_Client->getWrappedResult(false) #3 /usr/share/php/Java.inc(602): java_Client->getInternalResult() #4 /usr/share/php/Java.inc(1956): java_Client->createObject(‘org.altic.jaspe…’, Array) #5 /home/pablo/descargas/javabridge/php-jru/JdbcConnection.php(66): Java->Java(‘org.altic.jaspe…’) #6 /home/pa in /usr/share/php/Java.inc on line 228

    Espero me puedas ayudar, pues ya estoy desesperado con esto.

  9. 11 bruli 30/04/2009 a las 5:51 PM

    Se me ha olvidado decir que jars JdbcConnection.php license.txt php-jru.php están dentro del directorio php-jru.

  10. 12 bruli 30/04/2009 a las 5:53 PM

    No se porque el contenido de index.php, no se ha pegado bien.

    Lo vuelvo a poner:

    require(‘php-jru/php-jru.php’);
    require_once(‘Java.inc’);

    $jru= new JRU();

    $jru->loadDirLibrary(“php-jru/jars/”);

    $con= new JdbcConnection(“org.postgresql.Driver”,”jdbc:postgresql://localhost/aldiges”,”pablo”,”capgirall”);

    $parameters= new java(“java.util.HashMap”);

    $jru->runReportToPdfFile(“clientes.jasper”, “listado.pdf”, $parameters, $con->getConnection());

  11. 13 robertbruno 30/04/2009 a las 7:50 PM

    te comento algunas cosas que seguro te ayudaran:

    * Existe un jar que es super necesario y que debes verificar que este dentro de del directorio de jars, este es alticJasper.jar..

    * Debes de verificar los permisos de la carpeta de jar, asegurarte de tener los permisos de lectura.

    * Luego prueba indicando la ruta completa del directorio que contiene los jar.. (Solo para verificar que no hay alguna error el a ruta)

  12. 14 bruli 01/05/2009 a las 5:48 AM

    Hola.

    alticJasper.jar, está, los permisos son 777.

    Lo he puesto así:

    require(‘php-jru/php-jru.php’);
    require_once(‘Java.inc’);

    $jru= new JRU();

    $jru->loadDirLibrary(“/home/pablo/descargas/javabridge/php-jru/jars/”);

    $con= new JdbcConnection(“org.postgresql.Driver”,”jdbc:postgresql://localhost/basedatos”,”usuario”,”contraseña”);

    $parameters= new java(“java.util.HashMap”);

    $jru->runReportToPdfFile(“clientes.jasper”, “listado.pdf”, $parameters, $con->getConnection());

    Y el error ahora es otro.

    java stack trace: java.lang.Exception: Invoke failed: [[o:JasperRunManager]]->runReportToPdfFile((o:String)[o:String], (o:String)[o:String], (i:Map)[o:HashMap], (i:Connection)null). Cause: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: clientes.jasper VM: 1.6.0_13@http://java.sun.com/
    at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:232)
    at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfFile(JasperRunManager.java:122)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at php.java.bridge.JavaBridge.Invoke(JavaBridge.java:1063)
    at php.java.bridge.Request.handleRequest(Request.java:409)
    at php.java.bridge.Request.handleRequests(Request.java:485)
    at php.java.bridge.JavaBridge.run(JavaBridge.java:213)
    at php.java.bridge.ThreadPool$Delegate.run(ThreadPool.java:60)
    Caused by: net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: clientes.jasper
    … 12 more
    Caused by: java.io.FileNotFoundException: clientes.jasper
    … 12 more

  13. 15 robertbruno 03/05/2009 a las 6:28 PM

    incluye las librerías en el siguiente orden

    require_once(’Java.inc’);
    require(’php-jru/php-jru.php’);

  14. 16 bruli 04/05/2009 a las 12:05 PM

    Bueno, parece ser que el error viene por las rutas (para java supongo).

    He puesto primero el require a Java.inc y el resultado es el mismo. Sin embargo he conseguido que genere el pdf, pero vacío.

    require_once(‘Java.inc’);
    require(‘php-jru/php-jru.php’);

    $jru= new JRU();

    $jru->loadDirLibrary(“/home/pablo/descargas/javabridge/php-jru/jars/”);

    $con= new JdbcConnection(“org.postgresql.Driver”,”jdbc:postgresql://localhost/DB”,”usuario”,”contraseña”);

    $parameters= new java(“java.util.HashMap”);

    $jru->runReportToPdfFile(“/home/pablo/descargas/javabridge/clientes.jasper”, “/home/pablo/descargas/javabridge/listado.pdf”, $parameters, $con->getConnection());

    • 17 robertbruno 04/05/2009 a las 2:42 PM

      La vez anterior no revise con detalle el error que se generaba:

      En el error que se producía antes de esta el mensaje era el siguiente:

      org.altic.jasperReports.JdbcConnection. Cause: java.lang.ClassNotFoundException: Could not find org.altic.jasperReports.JdbcConnection in java_require() path. Please check the path and the SEL and File permissions.

      Que indicaba que no se estaban cargando bien los archivos .jar, esto se corrigió y el mensaje luego fue el siguiente:

      java.io.FileNotFoundException: clientes.jasper

      Que indica que no se encontró el archivo .jasper generado por iReport, lo que hace suponer que la ruta se encuentra mal o que no se tienen los permisos para acceder al archivo, revisa bien eso y cambia los permisos del archivo de la siguiente manera en una consola autenticado como root:

      chmod 777 ruta_comlpeta -R

      donde ruta_completa es la dirección del directorio que contiene el archivo.jasper

      es decir según los datos que enviaste seria algo como esto

      chmod 777 /home/pablo/descargas/javabridge/ -R

      Lo último que me has dicho es que ya habéis hecho esto, así que , es probable que si te genera el pdf en blanco el problema tenga origen en la conexión a la base de datos o en la consulta sql usada en el diseño del reporte.
      Revisa con detalle el usuario y password de conexión a la base de datos.

  15. 18 bruli 04/05/2009 a las 4:02 PM

    Solucionado.

    Lo de los permisos estaba bien.
    Antes de que pusieras tu comentario, los había cambiado como has puesto.

    Parece ser que faltaba el driver para la conexión en la base de datos postgresql-8.3-603.jdbc3.jar dentro del directorio jars.

    Gracias por la ayuda.

  16. 19 omar 08/03/2010 a las 6:55 PM

    gracias por los datos, yo tambien tenia el problema de que me salia el pdf pero en blanco y era porque tenia que agregar el driver de conexion para postgres dentro del directoria jars. muchas gracias.

  17. 20 Tuxtter 30/09/2010 a las 5:43 PM

    Gracias por la libreria, me sirvio mucho y al fin tengo jasperreports generando reportes a traves de php o como se diga jojojojo, la cosa que ya funciono, saludos. Felicidades sigue asi.


Los comentarios estás cerrados.



Escribe tu dirección de correo electrónico para suscribirte a este blog, y recibir notificaciones de nuevos mensajes por correo.

Únete a otros 12 seguidores


Seguir

Get every new post delivered to your Inbox.