JasperReport [RESOLVIDO]

Bom galera, procurei problemas iguais ao meu e não encontrei.

Eu tenho um JasperReport (que foi feito com o plugin) chamado relatorioEstoque e gostaria de chamá-lo dentro da aplicação. A minha aplicação não é web.

O pessoal fala pra usar as seguintes linhas:

try  {  
         jasperReport = JasperCompileManager.compileReport("relatorioEstoque.jrxml");  
         jasperPrint = JasperFillManager.fillReport(jasperReport, parametros, HibernateUtil.getConnection());  
         jasperViewer = new JasperViewer(jasperPrint, false );  
         jasperViewer.setDefaultCloseOperation(JasperViewer.DISPOSE_ON_CLOSE);  
         jasperViewer.setVisible(true);  
      
} catch (JRException ex)  {  
          Logger.getLogger(JD_PrecoVenda.class.getName()).log(Level.SEVERE, null, ex);  
}

Porém, dá erro na primeira linha quando executo.

Exception in thread “AWT-EventQueue-0” java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:143)
at Interface.JanelaPrincipal.actionPerformed(JanelaPrincipal.java:224)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester

Bom Dia Luiz ,esse tutorial da JavaFree.org me ajudou muito:

http://javafree.uol.com.br/artigo/871484/Relatorios-com-iReport.html

//codigo tirado dessa página

ExcRepositorio.java
public class ExcRepositorio extends Exception {
public ExcRepositorio(String mensagem) {
super(mensagem);
}
}

gConexao.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class gConexao {
private static Connection con;
public static Connection getConexao() throws ExcRepositorio {
String driver = “com.mysql.jdbc.Driver”;
String url = “jdbc:mysql://localhost:3306/meuprojeto”;
String login = “root”;
String senha = “”;
try {
Class.forName(driver);
con = DriverManager.getConnection(url, login, senha);
} catch (ClassNotFoundException e) {
throw new ExcRepositorio("Driver não encontrado: " + e.getMessage());
} catch (SQLException e) {
throw new ExcRepositorio("Erro abrindo conexão: " + e.getMessage());
}
return con;
}
}

principal.java
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;

public class principal {
public static void main(String[] args) throws JRException {
repositorioProduto rep = new repositorioProduto();
JasperPrint relat;

  //Insere mais um produto e exibe o relatorio  
  String desc = JOptionPane.showInputDialog("Descrição do produto: ");  
  double valor = Double.parseDouble(JOptionPane.showInputDialog("Valor: "));  
  produto prod = new produto(desc,valor);  
    
  try {  
     rep.inserir(prod);  
     relat = rep.gerar();  
     JasperViewer.viewReport(relat, false);  
  } catch (ExcRepositorio e) {  
     JOptionPane.showMessageDialog(null, "Erro: " + e.getMessage());  
  }     

}
}

produto.java
public class produto {
private int cod;
private String descricao;
private double preco;

public produto(String desc, double preco){
this.setDescricao(desc);
this.setPreco(preco);
}
public int getcod() {return cod;}
public String getDescricao() {return descricao;}
public double getPreco() {return preco;}

public void setcod(int cod) {
this.cod = cod;
}
public void setDescricao(String desc){
this.descricao = desc;
}
public void setPreco(double pc){
this.preco = pc;
}
}

repositorioProduto.java
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.HashMap;

import javax.swing.JOptionPane;

import net.sf.jasperreports.engine.JRException;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;

public class repositorioProduto{

public repositorioProduto() {}

public void inserir(produto prod) throws ExcRepositorio{
String desc = prod.getDescricao();
double preco = prod.getPreco();
String SQL = "insert into tb_Produtos (descricao, preco) values " +
“(’” + desc + "’, " + preco + “)”;

  Connection conn = null;  
  Statement stat = null;  
  try {  
     conn = gConexao.getConexao();  
     stat = conn.createStatement();  
     stat.executeUpdate(SQL);  
  } catch (SQLException e) {  
     throw new ExcRepositorio("Erro na conexão ao inserir: " + e.getMessage());  
  } finally {  
     if (stat != null) {  
        try {  
           stat.close();  
        } catch (SQLException e) {  
           throw new ExcRepositorio("Erro ao fechar conexão: " + e.getMessage());  
        }                          
     }  
  }     

}
public JasperPrint gerar() throws ExcRepositorio{
JasperPrint rel = null;
try {
Connection con = gConexao.getConexao();
HashMap map = new HashMap();
String arquivoJasper = “relatorio.jasper”;
rel = JasperFillManager.fillReport(arquivoJasper, map, con);
} catch (JRException e) {
JOptionPane.showMessageDialog(null,e.getMessage());
}
return rel;
}
}