iReport_problemas

Gerei um relatório pelo iReport e está funcionando bem, mas, não consigo gerar o mesmo relatório a partir de uma classe,.é mostrado o seguinte erro:

Exception in thread “main” java.io.FileNotFoundException: Relatorio_DVD.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:73)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:270)
at Relatorio_DVD.geraRelatorio(Relatorio_DVD.java:37)
at Relatorio_DVD.main(Relatorio_DVD.java:48)

NESTED BY :
net.sf.jasperreports.engine.JRException: Relatorio_DVD.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:73)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:270)
at Relatorio_DVD.geraRelatorio(Relatorio_DVD.java:37)
at Relatorio_DVD.main(Relatorio_DVD.java:48)
Caused by: java.io.FileNotFoundException: Relatorio_DVD.jrxml
… 4 more

A classe que estou usando para chamar o relatório é esta:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.;
import java.sql.
;
import java.util.*;

public class Relatorio_DVD {
private static Connection getConnection( ) throws ClassNotFoundException, SQLException {
String driver = “org.gjt.mm.mysql.Driver”;
String url = “jdbc:mysql://localhost:3306/locadora”;
String user = “root”;
String password = “123456”;
Class.forName(driver);
Connection con = DriverManager.getConnection( url, user, password );
return con;
}

/* Gera Relatorio e visualiza-o */ 
public void geraRelatorio( ) throws JRException, Exception { 
	Connection con = getConnection( );
	Statement stm = con.createStatement( );
	String query = "select Dvd_codigo, Dvd_filme from dvd";
	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( "Relatorio_DVD.jrxml", parameters, jrRS );
	/* Exporta para o formato PDF */
	JasperExportManager.exportReportToPdfFile( "Relatorio_DVD.jrprint" ); 
	/* Preenche o relatorio e o salva diretamente em arquivo PDF. 
	 * Sem a necessidade do .jrprint */
	// JasperRunManager.runReportToPdfFile("Relatorio_DVD.jasper", parameters, jrRS); 
	/* Visualiza o relatório em formato PDF */ 
	JasperViewer.viewReport( "Relatorio_DVD.pdf", false );
	} 

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

Se vc souber como solucionar esta problema ajude-me.

Como você tá passando o caminho, em código?

Parece que ele não encontrou o arquivo.

Outra coisa, você tem que passar o caminho do arquivo .JASPER e não .JRXML

Editado:

Procure usar as tags code e /code quando for escrever códigos, para facilitar a leitura.

Obrigado pela ajuda. Agradeço quem quiser contribuir com mais!!!
Vou aproveitar a oportunidade para aplicar o conhecimento adquirido acima

[code]
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.HashMap;
import net.sf.jasperreports.engine.JasperExportManager;
import net.sf.jasperreports.view.JasperViewer;
import net.sf.jasperreports.engine.;
import java.sql.
;
import java.util.*;

public class Relatorio_DVD {
private static Connection getConnection( ) throws ClassNotFoundException, SQLException {
String driver = “org.gjt.mm.mysql.Driver”;
String url = “jdbc:mysql://localhost:3306/locadora”;
String user = “root”;
String password = “123456”;
Class.forName(driver);
Connection con = DriverManager.getConnection( url, user, password );
return con;
}

[code]/* Gera Relatorio e visualiza-o */
public void geraRelatorio( ) throws JRException, Exception {
Connection con = getConnection( );
Statement stm = con.createStatement( );
String query = “select Dvd_codigo, Dvd_filme from dvd”;
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( “Relatorio_DVD.jrxml”, parameters, jrRS );
/
Exporta para o formato PDF /
JasperExportManager.exportReportToPdfFile( “Relatorio_DVD.jrprint” );
/
Preenche o relatorio e o salva diretamente em arquivo PDF.

  • Sem a necessidade do .jrprint /
    // JasperRunManager.runReportToPdfFile(“Relatorio_DVD.jasper”, parameters, jrRS);
    /
    Visualiza o relatório em formato PDF */
    JasperViewer.viewReport( “Relatorio_DVD.pdf”, false );
    }

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

Deu certo a visualização aí?

Valeu pela dica!!!

Bom dia, tudo bem?

hvivox, utilizei o seu código e estou com o seguinte problema:

net.sf.jasperreports.engine.JRException: java.io.FileNotFoundException: RelatorioDoenca.jrxml
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:75)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)

O RelatorioDoenca.jrxml está no mesmo diretório da classe.

Como eu porderia resolver isso?

Obrigado.