Arquivo.jasper aonde deve fica para compilar

9 respostas
A

Em que parte do meu projeto eu coloco o arquivo.jasper.
Pois já tentei build, src, test etc. Compila e executa com sucesso. porém não gera o relatório em pdf, e da a seguinte Exeption.

[b][color=red] Exception in thread main net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: BibliotecaPessoal.jasper

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)

at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)

at Relatorio.RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:50)

at Relatorio.RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:61)

Caused by: java.io.FileNotFoundException: BibliotecaPessoal.jasper

 4 more

Java Result: 1

[/color]

EXECUTADO COM SUCESSO (tempo total: 1 segundo)

[/b]

o código é igual a do tutorial guj, fiz pra eu não errar. Parece que necessita também de um arquivo RelatorioBibliotecaPessoal.java, porém quando eu compilo e executo pelo iReport ele gera dois arquivos no diretório do IReport.

RelatorioBibliotecaPessoal_1205029770953_46952.java
RelatorioBibliotecaPessoal.jasper
RelatorioBibliotecaPessoal.pdf

já com os dados do meu banco de dados já prontos e jogado em pdf.Também estou na dúvida, se é pra usar o
[color=blue] try [/color][color=#444444] e[/color][color=blue] catch[/color], e também porque apareceu esse arquivo [color=black] RelatorioBibliotecaPessoal_1205029770953_46952.java[/color] e não assim [color=black]RelatorioBibliotecaPessoal.java[/color]

9 Respostas

P

Você tem que informar aonde seus .jasper estão (lembrando que os arquivos .jasper já são compilados)

String rel1 ="/op/eclipse/workspace/teste.jasper"; //url do arquivo .jasper

JasperPrint impressao = null;

	try {
		impressao = JasperFillManager.fillReport(rel1, parametros, ds);
		JasperExportManager.exportReportToPdfFile(impressao, pathSalvaPdf+pdf);
	} catch (JRException e) {
		return e.getMessage();
	}

fica alguma coisa assim…

A

tem como você preencher esse código com o seu pra eu ver? por que está dando um erro, nesse ds.

import java.sql.*;
import java.util.*;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioBibliotecaPessoal {
   
    private static Connection getConnection( ) throws ClassNotFoundException, SQLException

    {
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:A1";

Class.forName(driver);
Connection con = DriverManager.getConnection( url);
return con;
}
/* Gera Relatorio e visualiza-o */
public void geraRelatorio( ) throws JRException, Exception
{
    
 
Connection con = getConnection( );
Statement stm = con.createStatement( );
String query = "select * from registro";
ResultSet rs = stm.executeQuery( query );

/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
Map parameters = new HashMap();
// parameters.put("COLUNA", valor);
/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
JasperFillManager.fillReportToFile( "BibliotecaPessoal.jasper", parameters, jrRS );
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile( "BibliotecaPessoal.jrprint" );
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem
a necessidade do .jrprint */
// JasperRunManager.runReportToPdfFile("BibliotecaPessoal.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport( "BibliotecaPessoal.pdf", false );
}
public static void main(String[] args) throws JRException, Exception
{
new RelatorioBibliotecaPessoal().geraRelatorio();
}
}
P

É só nessa linha colocar o caminho completo do arquivo .jasper

A

Bom. de fato eu já tentei isso, por isso que eu pedi pra preencher meu código, mas continua dando o mesmo erro. Eu acho que estou errando o local que eu coloquei o .jasper, pois eu uso o netbeans e deixei o arquivo .jasper na pasta do projeto.

o projeto é: agenda

o local que eu coloquei foi dentro da pasta agenda.

e se eu não me engano o local seria esse por default, se eu colocasse simplesmente .jasper na linha em que você citou.

A

refiz todo processo, agora deu certo, no reconhecimento do arqui.jasper. Só que agora está aparecendo outro erro na hora da compilação.

[color=red]Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:95)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:147)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:83)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:492)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:448)[/color]
[color=blue] at Relatorio.RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:44)
at Relatorio.RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:55)[/color]
[color=red]Java Result: 1[/color]

EXECUTADO COM SUCESSO (tempo total: 6 segundos)

Alguém tem alguma idéia de que pode ser isso, e qual erro eu errei?

segue o código

/*
 * RelatorioBibliotecaPessoal.java
 *
 * Created on 9 de Março de 2008, 17:26
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package Relatorio;

import java.sql.*;
import java.util.HashMap;
import java.util.Map;
import net.sf.jasperreports.engine.*;
import net.sf.jasperreports.view.JasperViewer;

/**
 *
 * @author Andrew Carvalho
 */
public class RelatorioBibliotecaPessoal {
private static Connection getConnection( ) throws ClassNotFoundException, SQLException
{
String driver = "sun.jdbc.odbc.JdbcOdbcDriver";
String url = "jdbc:odbc:A1";
Class.forName(driver);
Connection con = DriverManager.getConnection( url);
return con;
}
/* Gera Relatorio e visualiza-o */
public void geraRelatorio( ) throws JRException, Exception
{
Connection con = getConnection( );
Statement stm = con.createStatement( );
String query = "select * from Registro";
ResultSet rs = stm.executeQuery( query );
/* implementação da interface JRDataSource para DataSource ResultSet */
JRResultSetDataSource jrRS = new JRResultSetDataSource( rs );
/* HashMap de parametros utilizados no relatório. Sempre instanciados */
Map parameters = new HashMap();
// parameters.put("COLUNA", valor);
/* Preenche o relatório com os dados. Gera o arquivo BibliotecaPessoal.jrprint */
JasperFillManager.fillReportToFile( "RelatorioBibliotecaPessoal.jasper", parameters, jrRS );
/* Exporta para o formato PDF */
JasperExportManager.exportReportToPdfFile( "RelatorioBibliotecaPessoal.jrprint" );
/* Preenche o relatorio e o salva diretamente em arquivo PDF. Sem
a necessidade do .jrprint */
// JasperRunManager.runReportToPdfFile("BibliotecaPessoal.jasper", parameters, jrRS);
/* Visualiza o relatório em formato PDF */
JasperViewer.viewReport( "RelatorioBibliotecaPessoal.pdf", false );
}
public static void main(String[] args) throws JRException, Exception
{
new RelatorioBibliotecaPessoal().geraRelatorio();
}
}
F

Olá

Você tem que por o commons-logging.jar no classpath.

A

hum…

como é que eu faço isso amigo?
Onde é que eu abaixo esse commons-logging.jar?

A

Obrigado amigão!!!
e a todos que me ajudaram
Consegui gerar o relatório. Eu coloquei tudo no classpath.

 deu esse erro:

[color=red] Exception in thread main net.sf.jasperreports.engine.JRException: Error loading object from file : RelatorioBibliotecaPessoal.pdf

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:64)

at net.sf.jasperreports.view.JRViewer.loadReport(JRViewer.java:1387)

at net.sf.jasperreports.view.JRViewer.(JRViewer.java:250)

at net.sf.jasperreports.view.JRViewer.(JRViewer.java:221)

at net.sf.jasperreports.view.JasperViewer.(JasperViewer.java:142)

at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:409)

at net.sf.jasperreports.view.JasperViewer.viewReport(JasperViewer.java:340)

at Relatorio.RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:51)

at Relatorio.RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:55)

Caused by: java.io.StreamCorruptedException: invalid stream header: 25504446

at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:783)

at java.io.ObjectInputStream.(ObjectInputStream.java:280)

at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:87)

 9 more

[/color]

Mas pra mim não tem importância, o importante foi gerar o relatório.

E

Pessoal, sei que este tópico é antigo, mas estou com este mesmo problema, e mesmo procurando em vários outros tópicos na Web, não consigo resolver este problema.

(Esta é a minha primeira vez com o iReport)

Uso o Netbeans 6.8 com o Plugin do iReport no ambiente Windows 7.

Fiz seguindo outros tutoriais, e até onde eu sei, está tudo certo, o único problema até agora está sendo no erro:
[color=red]
net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: \Relatorios\Rel_Resultados1.jasper[/color]

O programa se encontra assim:
Relatório:
D:\estudo\JAVA\Meu_Projeto\src\Relatorios\Rel_Resultados1.jasper
Formulário:
D:\estudo\JAVA\Meu_Projeto\src\Programa\Celula_Precos.java
E a famosa linha que está dando problema é:
JasperFillManager.fillReportToFile("/Relatorios/Rel_Resultados1.jasper", null,jrds);

Gostaria da ajuda dos colegas para me iluminar nesse problema de saber como apontar o sistema para o arquivo .jasper, e desde já grato.
Edson

Criado 8 de março de 2008
Ultima resposta 14 de mar. de 2010
Respostas 9
Participantes 4