miércoles, 2 de junio de 2010

net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0

Si haz usado iReport para hacer tus reportes, y al ejecutarlo en un servidor lanza este error

net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0

y por más que compiles y recompiles el .jrxml, lanza el mismo error.... revisa las versiones del iReport y del JasperReports utilizado en el proyecto.


Asegúrate que sean la misma versión. En la publicación de este post, la versión del iReport es 3.7.3 al igual que el JasperReports.

Para ver todas las versiones del JasperReports, revisa esta página

http://sourceforge.net/projects/jasperreports/files/jasperreports

Y para ver las de iReport
http://sourceforge.net/projects/ireport/files/iReport/

También existe el plugin para NetBeans
http://sourceforge.net/projects/ireport/files/iReport%20Plugin%20for%20NetBeans/


26 comentarios:

  1. graciasss!!! me solucionaste un problemon!! q tenia, me pasaba esto xq tenia una version de iReport posterior q la de jasper

    Muchas gracias y segui con estas soluciones!!!
    Un saludo desde Uruguay!!!

    ResponderEliminar
  2. excelente, igual tenia ese error, no se me ocurrio buscar en google, creia que era un error de mi codigo!!

    saludos desde Chile!

    ResponderEliminar
  3. como puedo ver la version que tengo de
    JasperReports

    ResponderEliminar
  4. revisa el nombre del .jar que estás usando. Debe decir algo como jasperreports-3.7.3.jar. Esto es para el Jasper (la biblioteca que utiliza tu aplicación para mostrar un reporte .jasper)

    Pero si quieres ver la versión del iReport (la aplicación que edita los .jrxml y los compila a .jasper), revisa en Tools > Plugins, mira en la ficha de "Downloaded", activa el check y busca el ireport-designer. Hazle clic ahi y mira lo que dice en el panel derecho, en la línea "Source", ahí dice la versión del plugin.

    Espero que te sirva. Saludos

    ResponderEliminar
  5. Amigo ya supere el "Unknown hyperlink target 0" pero ahora me muestra un mensaje donde dice "null "

    ResponderEliminar
  6. hey amigo.. puede ser mas claro tu mensaje de error? un "null" puede significar muchas cosas, ¿cual es el mensaje completo del error?

    ResponderEliminar
  7. hola, tengo ese mismo error, y ya descargue los archivos respectivos pero que debo hacer porfavor ayudame

    ResponderEliminar
  8. Groso!, muchas gracias!

    ResponderEliminar
  9. hola, ¿qué frascos necesito tener en el proyecto? He comunes frascos-collections-3.2.1.jar "," maravilloso, todo-1.5.5.jar "," iText-2.1.7.jar "," jasperreports-3.7.3.jar "," jasperreports- tabla-temas-3.7.3.jar "," jasperreports-extensiones-3.5.3.jar "," jasperreports-fuentes-3.7.3.jar "y continuar con el siguiente error:

    net.sf.jasperreports.engine.JRRuntimeException: El objetivo hipervínculo Desconocido 0
    en net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget (JRHyperlinkHelper.java: 273)
    en net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget (JRBaseTextField.java: 317)


    El informe se genera en la versión 3.7.3 de iReport.
    ¿Qué puedo hacer para resolver la situación?

    Gracias

    ResponderEliminar
  10. Lo sentimos error del mensaje anterior

    hola, ¿qué jars necesito tener en el proyecto? Tengo los jars "commons-collections-3.2.1.jar","groovy-all-1.5.5.jar","iText-2.1.7.jar","jasperreports-3.7.3.jar","jasperreports-chart-themes-3.7.3.jar","jasperreports-extensions-3.5.3.jar","jasperreports-fonts-3.7.3.jar" y continuar con el siguiente error:

    net.sf.jasperreports.engine.JRRuntimeException: Unknown hyperlink target 0
    at net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget(JRHyperlinkHelper.java:273)
    at net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget(JRBaseTextField.java:317)


    El report se genera en la versión 3.7.3 de iReport.
    ¿Qué puedo hacer para resolver la situación?

    Gracias

    ResponderEliminar
  11. Mira, tienes el jar

    jasperreports-extensions-3.5.3.jar

    considera la correspondiente a la versión 3.7.3

    ResponderEliminar
  12. Gracias es verdad yo tope con este problema e intente hacer de todo pero no era error de codigo, era mi version tenia el jasperreports-3.6.1 y 3.6.2, y necesitaba la ultima version que es o creo que es la 3.7.5

    ResponderEliminar
  13. Hola ya cambie mi version de ireport porque tenia la version 4.0 y de jaspert tengo la 3.7.0 y baje el plugin de ireport 3.7.0 y nada me sigue marcando el mismo error que pasa?

    ResponderEliminar
  14. haz compilado el reporte con el iReport 3.7? dale clic en el botón en forma de martillo que está en la parte superior del diseño del reporte.

    ResponderEliminar
  15. Oye diego mira ya lo compile y no me marca error pero no me carga nada y no me carga nada nose que pasa ya llevo como 9 dias con los reportes y hoy siento que ya estoy muy cerca y pues no se que pasa mira mi codigo es este :

    package reportes;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;
    import javax.swing.*;
    import java.util.HashMap;
    import java.util.Map;
    import net.sf.jasperreports.engine.*;
    import net.sf.jasperreports.engine.util.JRLoader;
    import net.sf.jasperreports.view.*;
    import net.sf.jasperreports.view.save.JRPdfSaveContributor.*;
    import net.sf.jasperreports.view.JRViewer.*;
    import net.sf.jasperreports.view.save.JRMultipleSheetsXlsSaveContributor.*;
    import java.sql.*;

    public class IniciarReporte
    {
    Connection conn=null;
    public IniciarReporte(){ // inicia el contructor
    try
    {
    Class.forName("com.mysql.jdbc.Driver"); //se carga el driver
    conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/radio","root","camacho21");
    JOptionPane.showMessageDialog(null,"Conexión establecida");
    }
    catch (Exception ex)
    {
    ex.printStackTrace();
    }

    } // acaba el constructor
    public void ejecutarReporte()
    {
    try
    {
    String archivo = "reporteClientes.jasper";

    System.out.println("Cargando desde: " + archivo);
    if(archivo == null)
    {
    System.out.println ("No se encuentra el archivo ");
    System.exit(2);
    }
    JasperReport masterReport = null;
    try
    {
    masterReport = (JasperReport) JRLoader.loadObject(archivo);
    }
    catch (JRException e) {
    System.out.println("Error cargando el reporte de Clientes : " + e.getMessage());
    System.exit(3);
    }
    //Map parametro= new HashMap();
    //parametro.put("Id_cliente",id_cliente);
    //,conn);
    //JasperViewer jviewer= new JasperViewer(jasperPrint,false);
    //jviewer.setTitle("Geniz -Reporte");
    //jviewer.setVisible(true);
    }
    catch (Exception j)
    {
    System.out.println("Mensaje de Error:"+ j.getMessage());
    }
    } // aki acaba el metodo que va a cargar el archivo
    public void cerrar()
    {
    try
    {
    conn.close();
    }
    catch (SQLException ex)
    {
    ex.printStackTrace();
    }
    }



    } // acaba la clase








    Y le boton donde voy a presionar pa que salga el reporte la tengo en el mismo paquete no se que pasa me podrias dejar tu correo pa preguntar preguntas muy especificas mi correo es hector_camacho9@hotmail.com

    ResponderEliminar
  16. Ola oye sabes le intente de otra forma y ahora me sale esta excepcion mira me dice esto

    net.sf.jasperreports.engine.JRException:Byte data not found at location:leaf_banner_red.png
    Y por lo que le entiendo hay me dice que no se encuentra el archivo del logotipo y porque si ese logo yo lo tengo bien indicado ese es lo que no le entiendo alguien k me pudiera ayudar ya llevo mas de 10 dias con esto y namas no

    ResponderEliminar
  17. hola tengo el siguiente problema construi dos reportes con jasperreport y ireport 3.5.2 y si funcionan en la version 4... recientemente decidi cambiarme a la version 4.0 de jasperreport y ireport en busca de nuevos elementos... y he construido un nuevo reporte y no me funciona me arroja el siguiente error "unknown hyperlink target 0" ya verifique las versiones del jasperreport y ireport de mi netbeans y son las mismas (4.0) lo que me llama la curiosidad es que las biblioteca de mi proyecto aparecen como jasperreport 3.0.1 (entonces decidi eliminarlas y agregarlas de nuevo) pero siguen siendo 3.0.1 lo que me deja con la duda si la biblioteca jasperreport 3.0.1 solo trabaja con la version 3.x o hay una version 4.0 y no la integraron a el plugins del netbeans.... en resumidas cuentas todabia no corre el reporte que construi con la version 4.0 y necesito solucionar el error: unloknown hyperlink target 0 ......si alguien me puede ayudar mil gracias...

    ResponderEliminar
  18. Hola Anónimo
    pues sí, al parecer no están integrando bien el plugin de NetBeans con las bibliotecas necesarias. Eso lo comenté en su momento en un post anterior

    http://www.apuntesdejava.com/2008/08/reportes-en-netbeans-61-con.html

    Asi que lo que hago es agregar manualmente los .jars a la biblioteca de iReport después de instalar el plugin.

    ResponderEliminar
  19. me funcionó perfectamente, muchas gracias ya estaba volviéndome loco. yo tenia ireport 4 pero la version del jasper no era la misma, lo que hice fue descargar jasperrepor4 y agregarlos al proyecto, y listo todo funciona bien, gracias que Dios los bendiga.

    ResponderEliminar
  20. Gracias!Problema solventado!

    ResponderEliminar
  21. hola!! yo instale el plugin de ireport 3.7.0 y nada mas pero en la parte de las librerias me muestra q tengo jasperreport 3.0.1 esta bien esto?

    ResponderEliminar
  22. saludos a todos yo tenia ese prole el del net.sf.jasperreports.engine.JRRuntimeException y el error es que ise el reporte con la version iReport-4.0.2 y lo estaba corriendo en el eclipse con las librerias del iReport-3.7.1..ojo siempre hay que correrce los reportes con las mismas librerias de la version con la cual se iso.... otra cosa mas todas esas librerias no es necesario descargarlas por q cuando se instala el progra, todas la librerias con el y se pueden ubucar en la ruta C:\Program Files\Jaspersoft\iReport-3.7.1\ireport\modules\ext tambien hay q tener en cuenta q no es necesario utilizarlas todas el reporte se levanta con las siguientes lib

    commons-collections-2.1.1.jar
    commons-digester-1.7.jar
    commons-logging-1.0.4.jar
    iText-2.1.7.jar
    jasperreports-3.7.1.jar

    ResponderEliminar
  23. Gracias J J.
    Otro punto que considero (y espero que algun dia pueda postearlo) es tomar las versiones de las librerias. El digester esta en 1.8, y el logging en 1.1.. etc. y si se utiliza otros frameworks (como el spring) tambien considerar las ultimas versiones de sus librerias. Si no, en una misma aplicación aparecerá commons-logging-1.0.4.jar y commons-logging-1.1.1.jar.

    ResponderEliminar
  24. MUCHAS GRACIAS POR EL APORTE.... NO SABES DEL LIO QUE ME HE LIBRADO, LLEVABA COMO UNA SEMANA BUSCANDO LA SOLUCION.... SALUDOS DESDE OAXACA....

    ResponderEliminar

Si quieres hacer una pregunta más específica, hazla en los foros que tenemos habilitados en Google Groups


Ah! solo se permiten comentarios de usuarios registrados. Si tienes OpenID, bienvenido! Puedes obtener su OpenID, aquí: http://openid.net/