Olá Pessoal tudo bem!!
Estou usando o NetBeans 6.7.1 e o iReport 3.6.2 e na hora de compilar a classe java, me ocorre o seguinte erro:
Exception in thread "main" java.lang.NoClassDefFoundError: Lorg/apache/commons/logging/Log;
at java.lang.Class.getDeclaredFields0(Native Method)
at java.lang.Class.privateGetDeclaredFields(Class.java:2291)
at java.lang.Class.getDeclaredField(Class.java:1880)
at java.io.ObjectStreamClass.getDeclaredSUID(ObjectStreamClass.java:1610)
at java.io.ObjectStreamClass.access$700(ObjectStreamClass.java:52)
at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:425)
at java.security.AccessController.doPrivileged(Native Method)
at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413)
at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310)
at java.io.ObjectStreamClass.initNonProxy(ObjectStreamClass.java:547)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1583)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1947)
at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1871)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1753)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
at net.sf.jasperreports.engine.util.JRLoader.loadObject(JRLoader.java:92)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:443)
at Relatorios.RelatorioCarro.geraRelatorio(RelatorioCarro.java:37)
at Relatorios.RelatorioCarro.main(RelatorioCarro.java:52)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.Log
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
... 33 more
Java Result: 1
Esta é a minha classe java que gera o relatorio:
import BancoDeDados.CarroBD;
import BancoDeDados.ErroBD;
import java.util.HashMap;
import java.util.Map;
import javax.swing.JOptionPane;
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 RelatorioCarro {
public void geraRelatorio(){
try{
CarroBD carBD = new CarroBD();
JRResultSetDataSource jrRS = new JRResultSetDataSource(carBD.getResultSet("select * from carro"));
Map parametros = new HashMap();
JasperFillManager.fillReportToFile("D:\Relatorios\RelatorioCarro.jasper",parametros, jrRS);
JasperExportManager.exportReportToPdfFile("RelatorioCarro.jrprint");
JasperViewer.viewReport("RelatorioCarro.jasper",false);
}catch(ErroBD e){
JOptionPane.showMessageDialog(null,e.getMessage());
}catch(JRException e){
JOptionPane.showMessageDialog(null,e.getMessage());
}
}
public static void main(String args[]){
new RelatorioCarro().geraRelatorio();
}
}
Esta é a classe que busca o ResultSet:
public ResultSet getResultSet(String sql)throws ErroBD{
ResultSet resultado = null;
criaConexao();
PreparedStatement comando = null;
Carro car = null;
ListaCarro listacarro = null;
try {
listacarro = new ListaCarro();
// criar o comando sql a ser realizado
comando = conexao.prepareStatement(sql);
//executar a consulta e obter as tuplas selecionadas
resultado = comando.executeQuery();
resultado.close();
comando.close();
return resultado;
}
catch(SQLException e){
throw new ErroBD("erro ao realizar consulta");
}
finally{
fechaConexao();
}
}
Caso alguem possa me ajudar ficarei grato!!!