Ajuda Ireport

5 respostas
THIAGOANALISTA

Esta ocorrendo o seguinte erro: Socorro preciso gerar meus relatórios…

run: Exception in thread "main" java.lang.NoSuchMethodError: net.sf.jasperreports.engine.JRHyperlinkHelper.getLinkTarget(B)Ljava/lang/String; at net.sf.jasperreports.engine.base.JRBaseTextField.normalizeLinkTarget(JRBaseTextField.java:317) at net.sf.jasperreports.engine.base.JRBaseTextField.readObject(JRBaseTextField.java:381) 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:1849) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) 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:1849) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:88) at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:64) at br.com.supercred.consultas.Relatorio3.exibirRelatorio(Relatorio3.java:42) at br.com.supercred.consultas.Relatorio3.main(Relatorio3.java:51) Java Result: 1 CONSTRUÍDO COM SUCESSO (tempo total: 5 segundos)

5 Respostas

sammers21

Coloque o código para ajudar, senão fica dificil

THIAGOANALISTA

MINHA CLASSE

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.com.supercred.consultas;

import java.sql.Connection;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.sql.SQLException;

import java.util.HashMap;
import java.util.Map;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class Relatorio4
{
/* Driver do banco de dados, URL, usuário e senha do banco de dados */
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DATABASE_URL = "jdbc:mysql://localhost:3306/bd_supercred";
static final String USER = "root";
static final String PASSWORD = "root";

/* Conecta-se ao banco de dados e retorna o objeto da conexão */
private static Connection getConnection() throws
ClassNotFoundException, SQLException
{
/* Carrega o driver do postgreSQL */
Class.forName(JDBC_DRIVER);

/* Cria um objeto de conexão */
Connection connection = DriverManager.getConnection(DATABASE_URL, USER, PASSWORD);
return connection;
}

/* Gera relatório */
public void gerarRelatorio() throws
JRException, Exception
{
/* Chama o método getConnection para obter um objeto Connection,
utiliza-o para obter um objeto Statement e realiza uma consulta
armazendo o resultado em um ResultSet
*/
Connection connection = getConnection();
Statement statement = connection.createStatement();
ResultSet result = statement.executeQuery("SELECT * FROM banco;");

/* Cria um JRResultSetDataSource com o resultado da consulta */
JRResultSetDataSource jrrs = new JRResultSetDataSource(result);

/* Cria um HashMap com parâmetros do relatório.
Caso não seja atribuído algum valor aos parâmetros estes
assumem o valor padrão.
*/
Map parametros = new HashMap();

/* Cria um arquivo .jrprint (relatório preenchido) utilizando o
Relatorio.jasper (design), os parâmetros e o
JRResultSetDataSource que é o resultado da consulta.
*/
JasperPrint jp = JasperFillManager.fillReport("bancos.jasper", parametros, jrrs);

/* Exibe o relatório */
JasperViewer.viewReport(jp);
}

public static void main(String[] args) throws
JRException, Exception
{
new Relatorio4().gerarRelatorio();
}
}
ERRO:
SEVERE: null
net.sf.jasperreports.engine.JRException: Error loading object from file : c:\bancos.jasper
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
        at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:540)
        at br.com.supercred.consultas.Relatorio4.gerarRelatorio(Relatorio4.java:69)
        at br.com.supercred.view.FormPMMG.btnImprimirActionPerformed(FormPMMG.java:1102)
        at br.com.supercred.view.FormPMMG.access$1900(FormPMMG.java:48)
        at br.com.supercred.view.FormPMMG$11.actionPerformed(FormPMMG.java:884)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.Component.processMouseEvent(Component.java:6263)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
        at java.awt.Component.processEvent(Component.java:6028)
        at java.awt.Container.processEvent(Container.java:2041)
        at java.awt.Component.dispatchEventImpl(Component.java:4630)
        at java.awt.Container.dispatchEventImpl(Container.java:2099)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
        at java.awt.Container.dispatchEventImpl(Container.java:2085)
        at java.awt.Window.dispatchEventImpl(Window.java:2478)
        at java.awt.Component.dispatchEvent(Component.java:4460)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.io.StreamCorruptedException: invalid stream header: 3C3F786D
        at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)
        at java.io.ObjectInputStream.<init>(ObjectInputStream.java:280)
        at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87)
        ... 30 more

JÁ COLOQUEI O CAMINHO ABSOLUTO, E NADA, NÃO ACESSA, NO IREPORT ESTÁ FUNCIONANDO PERFEITAMENTE, NÃO SEI O QUE ESTÁ OCORRENDO, PEÇO UM HELP!!!!

A

pergunta: o arquivo bancos.jasper está no mesmo local que a classe que estás executando?

sammers21

Kra pelo que eu vi no seu código o que esta com problema é o caminho para o relatório que você esta setando “bancos.jasper”

tente algo assim:

relat = JasperFillManager.fillReport("\\\\10.70.7.25\\documentos digitalizados\\RelatoriosJava\\consulta_destino_final.jasper", map, jrRS);
davidbuzatto

Thiago, para evitar gambiarras como usar o caminho absoluto dos relatórios, dê uma olhada nos meus tutoriais.
Se você estiver usando o NetBeans vai ficar mais fácil ainda, mas caso estiver usando outra IDE, o processo é bem parecido.

Parte 1 - http://davidbuzatto.wordpress.com/2010/10/09/jasperreports-trabalhando-com-relatorios-em-java-parte-1/
Parte 2 - http://davidbuzatto.wordpress.com/2010/10/10/jasperreports-trabalhando-com-relatorios-em-java-parte-2-primeiros-relatorios/

[]´s

Criado 11 de outubro de 2010
Ultima resposta 12 de out. de 2010
Respostas 5
Participantes 4