Então, pessoal.
Eu sou iniciante em java. Estou fazendo faculdade mas resolvi pular algumas etapas…
daí eu encontrei esse erro, quando tentei fazer a chamada de um relatório com o IReport 5.0.1.
Vou postar o código-fonte e o classpath do projeto.
Acho que o problema está no classpath, quero dizer, não devo ter adicionado todas as bibliotecas.
Agradeço desde já a todos que me ajudarem.
ERRO:
[quote]Exception in thread “main” java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.(DefaultExtensionsRegistry.java:97)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at java.lang.Class.newInstance0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:81)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.(ExtensionsEnvironment.java:69)
at net.sf.jasperreports.engine.util.JRStyledTextParser.(JRStyledTextParser.java:83)
at net.sf.jasperreports.engine.fill.JRBaseFiller.(JRBaseFiller.java:121)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:88 )
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:153)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:82)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:653)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:569)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:915)
at IReport.IReport.main(IReport.java:28 )
Caused by: java.lang.ClassNotFoundException: org.apache.commons.collections.ReferenceMap
at java.net.URLClassLoader$1.run(Unknown Source)
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)
… 21 more
[/quote]
CÓDIGO:
[code]import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.util.HashMap;
import javax.swing.JOptionPane;
import net.sf.jasperreports.engine.JRResultSetDataSource;
import net.sf.jasperreports.engine.JasperFillManager;
import net.sf.jasperreports.engine.JasperPrint;
import net.sf.jasperreports.view.JasperViewer;
import com.mysql.jdbc.PreparedStatement;
public class IReport {
public static void main(String[] args) {
JRResultSetDataSource jrRS;
String url = "jdbc:mysql://localhost:3306/grafica";
ResultSet rst = null;
Connection con = null;
PreparedStatement stm;
try {
con = DriverManager.getConnection(url,"root","");
stm = (PreparedStatement) con.prepareStatement("SELECT ped.id_pedido, ped.data, ped.hora, cli.*, (concat(cli.cidade_cli,' / ',cli.estado_cli)) AS cidadeEstado FROM pedido ped INNER JOIN clientes cli ON cli.idcliente = ped.id_cliente WHERE ped.id_pedido = 76");
rst = stm.executeQuery();
jrRS = new JRResultSetDataSource(rst);
JasperPrint jasperPrint = JasperFillManager.fillReport("/Users/Ândrei/Desktop/RACIONAL GRÁFICA/Eclipse - RG/InterfaceGrafica/relatorio/pedido.jasper", new HashMap<String, Object>(), jrRS);
JasperViewer jrviewer = new JasperViewer(jasperPrint, false);
jrviewer.setVisible(true);
jrviewer.toFront();
} catch(Exception erro) {
erro.printStackTrace();
JOptionPane.showMessageDialog(null,"Não foi possivel gerar relatório! "+erro);
}
}
}[/code]
CLASSPATH EM BRAILE:
:idea: Obs.: Não fui eu quem criou o relatório, foi um amigo meu. Eu ainda não tive experiência com o programa IReport, então, peço que expliquem detalhadamente a(s) causa(s) do erro.