簡體   English   中英

如何避免出現 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

[英]How to avoid getting java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

我有一個NetBeans項目,我想在其中設計 jasper 報告,當我通過JasperFillManager.fillReport填寫報告時,我發現了一條錯誤消息。

我該如何解決這個問題?

我使用過iReport 5.0.0JasperReports 庫 5.1.0

我的代碼描述如下

try {
    String reportName = "./rptJobList.jasper";
    InputStream is = new FileInputStream(reportName);
    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/js001?user=root&password=admin");
    JasperPrint jasperPrint = JasperFillManager.fillReport(is, null, con);
    JasperViewer jv = new JasperViewer(jasperPrint);
    jv.setVisible(true);
} catch (Exception ex) {
}

例外是:

線程“AWT-EventQueue-0”中的異常 java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at net.sf.jasperreports.engine.util.JRLoader.(JRLoader.java:68) at net.sf。 jasperreports.engine.JRPropertiesUtil.loadProperties(JRPropertiesUtil.java:99) 在 net.sf.jasperreports.engine.DefaultJasperReportsContext.initProperties(DefaultJasperReportsContext.java:94) 在 net.sf.jasperreports.engine.DefaultJasperReports.javaReports. ) 在 net.sf.jasperreports.engine.DefaultJasperReportsContext.(DefaultJasperReportsContext.java:59) 在 net.sf.jasperreports.engine.JasperFillManager.getDefaultInstance(JasperFillManager.java:85) 在 net.sf.jasperreports.engine.JasperFillManager. (JasperFillManager.java:824) at job.NewClass.jButton2ActionPerformed(NewClass.java:64) at job.NewClass.access$000(NewClass.java:21) at job.NewClass$1.actionPerformed(NewClass.java:42) at javax .swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) 在 javax.swing.Abst ractButton$Handler.actionPerformed(AbstractButton.java:2318) 在 javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) 在 javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) 在 javax.swing.plaf.basic .BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6134) at javax.swing.JComponent.processMouseEvent(JComponent.java:3265) at java.awt.Component.processEvent( Component.java:5899) 在 java.awt.Container.processEvent(Container.java:2023) 在 java.awt.Component.dispatchEventImpl(Component.java:4501) 在 java.awt.Container.dispatchEventImpl(Container.java:2081) ) 在 java.awt.Component.dispatchEvent(Component.java:4331) 在 java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4301) 在 java.awt.LightweightDispatcher.processMouseEvent(Container.java:3965) 在 java.awt .LightweightDispatcher.dispatchEvent(Container.java:3895) 在 java.awt.Container.dispatchEventImpl(Container.java:206) 7) 在 java.awt.Window.dispatchEventImpl(Window.java:2458) 在 java.awt.Component.dispatchEvent(Component.java:4331) 在 java.awt.EventQueue.dispatchEvent(EventQueue.java:599) 在 java。 awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184) (EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 由:java.lang.ClassNotFoundException: org.apache. commons.logging.LogFactory 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:307) 在 sun.misc.Launcher$AppClassLoader.loadC lass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) ... 35 更多

Commons Logging需要添加到類路徑中。 如果您在常規 Netbeans 項目中工作(而不是在 Netbeans 中的 Maven 項目中),請查看這個 SO 問題這篇解釋如何將庫添加到項目的文章。

另一方面,如果您正在使用 Netbeans 處理 Maven 項目,則必須將 Commons 日志記錄添加為依賴項。 可以在此處找到如何完成 - 基本上是右鍵單擊項目樹中的庫節點,添加依賴項,輸入工件詳細信息或使用內置搜索助手在 Maven 存儲庫中找到正確的工件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM