Classe java não chama arquivo jasper

2 respostas
Kiko1

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

2 Respostas

A

cara,

veja nesse link o motivo do erro.

t+

Kiko1

Olá alisson, fiz o que dizia no fórum, baixei duas versões antigas do ireport, e um jar atualizado, mas mesmo assim nenhum desses 3 jeitos funcionou… já não sei mais o que fazer…fico no aguardo se alguém puder me ajudar…

Abraçoo

Criado 14 de outubro de 2011
Ultima resposta 15 de out. de 2011
Respostas 2
Participantes 2