Boa noite galera.
Fiz um arquivo jasper no no Ireport 4.1.2, com nome de Clientes. jasper, mas quando crio uma classe no java para executa-lo e introduzir no meu sistema, dá esse erro:
Exception in thread "main" 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.JRBaseImage.normalizeLinkTarget(JRBaseImage.java:929)
at net.sf.jasperreports.engine.base.JRBaseImage.readObject(JRBaseImage.java:1051)
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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at java.util.ArrayList.readObject(ArrayList.java:593)
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 java.io.ObjectStreamClass.invokeReadObject(ObjectStreamClass.java:974)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1848)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1666)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1322)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1946)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1870)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1752)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:68)
at kartodromo.RelatorioProdutos.exibirRelatorio(RelatorioProdutos.java:41)
at kartodromo.RelatorioProdutos.main(RelatorioProdutos.java:50)
Java Result: 1
Segue abaixo o código
package kartodromo;
import java.sql.*;
import javax.swing.JOptionPane;
import java.util.HashMap;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.engine.util.JRLoader;
import net.sf.jasperreports.view.*;
public class RelatorioProdutos {
private Connection con;
private String relatorio = ("C://Users//Wallace//Desktop//Clientes.jasper");
public RelatorioProdutos() {
try{
String url ="jdbc:mysql://localhost:3306/test";
String usuario ="root";
String senha="";
Class.forName("com.mysql.jdbc.Driver");
con = DriverManager.getConnection(url,usuario,senha);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM clientes");
}
catch(Exception event)
{
JOptionPane.showMessageDialog(null,"conexão não estabelecida"+
" verificar se o banco esta ativo","Mensagem do Programa",JOptionPane.ERROR_MESSAGE);
}
}
public void exibirRelatorio() throws SQLException{
try {
JasperReport jr = (JasperReport)JRLoader.loadObject(relatorio);
HashMap map = new HashMap();
JasperPrint rel = JasperFillManager.fillReport(jr, map, con);
JasperViewer.viewReport(rel, false);
} catch (JRException erro) {
JOptionPane.showMessageDialog(null, "Erro: " + erro.getMessage());
}
}
public static void main(String [] agrs) throws SQLException{
new RelatorioProdutos().exibirRelatorio();
}
}
Se dou Debug na classe aparece que foi construído com sucesso, estou realmente perdido…
Se alguém puder dar um toque e mostrar aonde estou errando, ficarei muito grato
Obrigado