Jasper报告不包括JRScriptlet?

时间:2015-12-27 22:49:43

标签: java

这是我的代码:

 public void makeReportAddToPanel()
   {


       JasperReportBuilder report = DynamicReports.report();//a new report

       report
          .columns(
              Columns.column("Applicant", "ApplicantName", DataTypes.stringType()),
              Columns.column("Quiz", "Quiz", DataTypes.integerType()),
              Columns.column("Score", "Score", DataTypes.integerType()))
                .title(//title of the report
              Components.text("Score Per Quiz")
              .setHorizontalAlignment(HorizontalAlignment.CENTER))
              .pageFooter(Components.pageXofY())//show page number on the page footer
              .setDataSource("Select answer,userId,questionId from quizTaken",dao.Connection.getDBConnection());

        try {
                    //show the report
            JRViewer view = new JRViewer(report.toJasperPrint());
            report.show();
            this.add(view);

                    //export the report to a pdf file
            report.toPdf(new FileOutputStream("/report.pdf"));
        } catch (DRException e) {
            e.printStackTrace();
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
      }

这是堆栈跟踪

Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: net/sf/jasperreports/engine/JRScriptlet
    at net.sf.dynamicreports.jasper.base.JasperReportDesign.init(JasperReportDesign.java:82)
    at net.sf.dynamicreports.jasper.base.JasperReportDesign.<init>(JasperReportDesign.java:76)
    at net.sf.dynamicreports.jasper.base.JasperReportDesign.<init>(JasperReportDesign.java:69)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperReportDesign(JasperReportBuilder.java:260)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.getJasperParameters(JasperReportBuilder.java:287)
    at net.sf.dynamicreports.jasper.builder.JasperReportBuilder.toJasperPrint(JasperReportBuilder.java:298)
    at source.Report.makeReportaddToPanel(Report.java:134)
    at guiCompanyLevel.CompanyGui$MenuItemHandler.actionPerformed(CompanyGui.java:247)
    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.AbstractButton.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
    at javax.swing.plaf.basic.BasicMenuItemUI$Handler.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$500(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$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.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$JavaSecurityAccessImpl.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)

所以我正在尝试构建一个报告并将其放入面板中,但是当我运行代码时,我得到了这个错误...当我查看jasperreport jar时,不包含JRScriptlet包

1 个答案:

答案 0 :(得分:0)

您的项目缺少依赖项。

因此,您必须将jasperreport-xxx.jar(与您的目标版本对应的xxx)添加到类路径中。

如果您正在使用maven,请将gAV参数添加到具有足够范围的pom.xml文件中(默认情况下编译)。