estou tentando aprender sobre jasperreport e ireport, estudei alguns materiais(inclusive um que tinha aqui no guj), tentei implementar, só que estou com problemas para converter um arquivo jrxml para o formato jasper. Baixei o ireport criei um relatorio e mandei salvar, ele só salva no formato jrxml, só que o exemplo que tenho de aplicação, utiliza um arquivo .jasper, pesquisei alguns comando para converter no proprio programa não tive sucesso ao utilizar este comando :
JasperCompileManager.compileReportToFile("Contatos.jrxml","Contatos.jasper");
segue logo abaixo o programa para apresentação do relatorio.
[code]package teste;
import net.sf.jasperreports.engine.;
import net.sf.jasperreports.engine.JasperManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.engine.JasperReport;
import net.sf.jasperreports.engine.design.JasperDesign;
import net.sf.jasperreports.view.JasperViewer;
import javax.swing.JOptionPane;
import java.sql.;
import java.util.*;
public class Jasper {
/* Realiza conexão com o banco de dados, retornando o objeto Connection */
private static Connection getConnection( ) throws
ClassNotFoundException, SQLException
{
String driver = "com.mysql.jdbc.Driver";
String url = "jdbc:mysql://localhost/agenda";
String user = "Login";
String password = "senha";
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 * from contatos";
ResultSet rs = stm.executeQuery( query );
try {
JasperDesign design = JasperManager.loadXmlDesign("/Contatos.jrxml" );
JasperReport jr = JasperManager.compileReport(design);
HashMap parametros = new HashMap();
JasperPrint impressao = JasperManager.fillReport( jr, parametros, con );
JasperViewer jrviewer = new JasperViewer( impressao, false );
jrviewer.setVisible(true);
jrviewer.setDefaultCloseOperation(jrviewer.DISPOSE_ON_CLOSE);
}catch( Exception e) {
JOptionPane.showMessageDialog( null, "Erro:\n" + e.toString());
e.printStackTrace();
}
}
public static void main(String[] args) throws JRException, Exception
{
new Jasper().geraRelatorio();
}
}[/code]
Está gerando este erro, provavelmente erro com o arquivo "Contatos.jrxml" ou "Contatos.jasper".
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at net.sf.jasperreports.engine.JasperManager.loadXmlDesign(JasperManager.java:971)
at teste.Jasper.geraRelatorio(Jasper.java:39)
at teste.Jasper.main(Jasper.java:79)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
… 3 more
só uma observaçao o arquivo contatos.jrxml está inclusa no projeto ou seja está na pasta da aplicação.
eu tentei Compilar pelo iReport mas simplesmente não acontece nada não aparece mensagem nada, vou no menu>>Criar(Bild)>>Compilar não adianta.
Desedejá eu agradeço a colaboração.