iRepor

Salve Lista!

Criei um arquivo .jasper no iReport, testo-o e funfa legal. Daí criei essa classe no eclipse para executar o arquivo .jasper e qdo executo-a (no eclipse) dá o erro especificado abaixo, sendo que eu peguei o arquivo .jasper e coloquei-o no mesmo diretório onde está o meu .class
Alguma dica?

[code]package br.com.fit.teste;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
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.JasperExportManager;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.view.JasperViewer;

public class RelatorioBibliotecaPessoal {

private static Connection getConnection() throws ClassNotFoundException,
		SQLException {
	String driver = "com.mysql.jdbc.Driver";
	String url = "jdbc:mysql://localhost:3306/cadastro";
	String user = "root";
	String password = "root";
	
	Class.forName(driver);
	Connection con = DriverManager.getConnection(url, user, password);
	return con;
}

public void geraRelatorio() throws JRException, Exception {
	
	Connection con = getConnection();
	Statement stm = con.createStatement();
	String query = "select * from associado";
	ResultSet rs = stm.executeQuery(query);
	JRResultSetDataSource jrRS = new JRResultSetDataSource(rs);
	Map parameters = new HashMap();
	// parameters.put("abc" , "def");

	JasperFillManager.fillReportToFile("RelatorioBibliotecaPessoal.jasper",
			parameters, jrRS);
	JasperExportManager.exportReportToPdfFile("RelatorioBibliotecaPessoal.jrPrint");

	JasperViewer.viewReport("BibliotecaPessoal.pdf", false);
}

public static void main(String[] args) throws JRException, Exception {
	new RelatorioBibliotecaPessoal().geraRelatorio();
}

}
[/code]
Exception in thread “main” java.io.FileNotFoundException: RelatorioBibliotecaPessoal.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)
at br.com.fit.teste.RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:41)
at br.com.fit.teste.RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:49)

NESTED BY :
net.sf.jasperreports.engine.JRException: RelatorioBibliotecaPessoal.jasper
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)
at br.com.fit.teste.RelatorioBibliotecaPessoal.geraRelatorio(RelatorioBibliotecaPessoal.java:41)
at br.com.fit.teste.RelatorioBibliotecaPessoal.main(RelatorioBibliotecaPessoal.java:49)
Caused by: java.io.FileNotFoundException: RelatorioBibliotecaPessoal.jasper
… 4 more

Marques,

Isso com certeza é o caminho do arquivo jasper que ele não está encontrando, faz o seguinte: cria um diretório reports na raiz do seu projeto e colocar o .jasper lá, então na referência do projeto muda seu código para:

JasperFillManager.fillReportToFile(
	"reports/RelatorioBibliotecaPessoal.jasper", parameters, jrRS);

ASOBrasil