java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap

Vraiment débutant en java, espagnol-haut-parleur, de sorte que, malade de faire de mon mieux pour vous de me comprendre :). J'ai fait un programme qui gère une base de données mysql pour stocker les clientes, les informations sur les clients, etc. Et génère (ou d'essayer aussi...) des rapports. J'ai installé JasperReports de l'Éclipse du Marché (BTW, à l'aide d'Eclipse Kepler). Suivant des tutoriels, j'ai fait mon chemin dans la création d'un rapport par des paramètres. Son juste un paramètre à identifier un client. Ce n'est pas le problème. Le problème vient lorsque je clique sur mon bouton pour générer le rapport, qui contient le code ci-dessous:

JButton btnOk = new JButton("OK");
btnOk.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
String doc = jftxtDni.getText();
String sql;
boolean respuesta = false;
ConexionBaseDatos cc = new ConexionBaseDatos();
sql = "SELECT * FROM clientes WHERE DNI = '"+doc+"'";
rs = cc.Consultar(sql);
try 
{
while (rs.next())
{
respuesta = true;
}
}
catch (SQLException e) 
{
JOptionPane.showMessageDialog(null, "error sql: "+e.getMessage());
}    
if (respuesta)
{
ConexionBaseDatos cd = new ConexionBaseDatos();
Connection cn = cd.Conectar();
JasperReport jr = null;
String archivo = "src/reportes/Tree.jasper";
try
{
HashMap<String, Object> parametro = new HashMap<String, Object>();
parametro.put("dni", doc);
jr = (JasperReport) JRLoader.loadObjectFromFile(archivo);
JasperPrint jp = JasperFillManager.fillReport(jr,parametro,cn);
JasperViewer jv = new JasperViewer(jp);
jv.setVisible(true);
jv.setTitle("Informe de cliente");
} 
catch (JRException e)
{
JOptionPane.showMessageDialog(null, "error Jasper: "+e.getMessage());;
}
}   
else
{
JOptionPane.showMessageDialog(null, "No existe el cliente en la base de datos, verifique.");
}
}
}
)

qui, en dépit de l'espagnol noms de variables, me met une gifle d'une variable tapé par l'utilisateur, se connecte à la base de données, vérifier l'existence d'un tel utilisateur à travers son "projet", si elle existe, génère le rapport, dans le cas contraire, un message d'erreur.
Quand j'ai exécuté la première fois, apache.commons.la journalisation pas trouvé apparu, à qui j'ai résolu l'importation de apache commons bibliothèques. Mais après cela, l'erreur a été celle que j'ai intitulé ce sujet. J'ai dit: facile gâteau, téléchargé apache commons collections, importé des pots... et c'est tout! J'ai pensé... mais pas moyen.. j'obtiens:

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: org/apache/commons/collections/ReferenceMap
at net.sf.jasperreports.extensions.DefaultExtensionsRegistry.<init>(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.newInstance(Unknown Source)
at net.sf.jasperreports.engine.util.ClassUtils.instantiateClass(ClassUtils.java:59)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.createDefaultRegistry(ExtensionsEnvironment.java:82)
at net.sf.jasperreports.extensions.ExtensionsEnvironment.<clinit>(ExtensionsEnvironment.java:69)
at net.sf.jasperreports.engine.util.JRStyledTextParser.<clinit>(JRStyledTextParser.java:83)
at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:123)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:88)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:103)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:61)
at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:81)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:446)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:849)
at formularios.ImprimirCliente$2.actionPerformed(ImprimirCliente.java:143)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
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)
... 55 more

...tellement... j'ai une double vérification de la bibliothèque est ok, et là, mais pour une raison quelconque, il semble comme eclipse ou java, ou une sorte d'alien, il ne marche pas le trouver.. de toute façon, j'ai fait des recherches sur internet, et a constaté cette erreur, qui a surtout été résolu par l'importation de communes des collections... pas mon cas. Eclipse kepler, java 7, et apache commons 4.0. Toute vague idée..? Merci beaucoup de prendre le temps de le lire, désolé pour mon anglais et en attendant un peu de lumière.. 😀

  • Peut-être que le problème réside ici: Aller à java problèmes/mises en garde et vérifier si tu n'as pas d'avertissement avec cette bibliothèque. Si elle existe, sélectionnez le correctif rapide
  • la version de commons-collections utilisez-vous?
  • eh bien, cette erreur ne marche pas montrer dans les Problèmes, seulement dans la console. Donc pas de solution rapide disponible :). Im en utilisant commons collections 4-4.0. merci à l'avance!!
  • Je vais essayer de déclassement des collections et de voir ce qui se passe!
InformationsquelleAutor neopablo2000 | 2014-04-03