2012-02-17 94 views
1

我有一个动态碧玉报告的例子。DynamicJasper:如何解决java.lang.NoSuchMethodError错误

我正在使用NetBeans IDE。

我包括库文件如下:

Dynamic-jasper-3.2.1.jar 
Dynamic-jasper-3.2.1-test.jar 
jasperreport-4.5.jar 
commons-beanutils-1.8.2.jar 
commons-collections-3.2.1.jar 
commons-digester-1.7.jar 
commons-logging-1.1.jar 
junit-3.8.2.jar 
import java.util.Date; 
import net.sf.jasperreports.view.JasperDesignViewer; 
import net.sf.jasperreports.view.JasperViewer; 
import ar.com.fdvs.dj.domain.DynamicReport; 
import ar.com.fdvs.dj.domain.builders.FastReportBuilder; 
import ar.com.fdvs.dj.test.BaseDjReportTest; 

public class FastReportTest extends BaseDjReportTest { 
    public DynamicReport buildReport() throws Exception { 

     FastReportBuilder drb = new FastReportBuilder(); 
     drb.addColumn("State", "state", String.class.getName(), 30) 
       .addColumn("Branch", "branch", String.class.getName(), 30) 
       .addColumn("Product Line", "productLine", String.class.getName(), 50) 
       .addColumn("Item", "item", String.class.getName(), 50) 
       .addColumn("Item Code", "id", Long.class.getName(), 30, true) 
       .addColumn("Quantity", "quantity", Long.class.getName(), 60, true) 
       .addColumn("Amount", "amount", Float.class.getName(), 70, true) 
       .addGroups(2) 
       .setTitle("November \"2006\" sales report") 
       .setSubtitle("This report was generated at " + new Date()) 
       .setPrintBackgroundOnOddRows(true) 
       .setUseFullPageWidth(true); 

     DynamicReport dr = drb.build(); 
     return dr; 
    } 

    public static void main(String a[]) throws Exception { 
     FastReportTest test = new FastReportTest(); 
     // test. 
     test.testReport(); 
     test.exportToJRXML(); 
     JasperViewer.viewReport(test.jp); //finally display the report report 
     JasperDesignViewer.viewReportDesign(test.jr); 
    } 
} 

我有错误是这样的:

Feb 17, 2012 10:30:58 AM ar.com.fdvs.dj.core.DynamicJasperHelper generateJasperReport 
INFO: generating JasperReport 
Feb 17, 2012 10:30:58 AM ar.com.fdvs.dj.core.DynamicJasperHelper generateJasperReport 
INFO: generating JasperReport 
Feb 17, 2012 10:30:58 AM ar.com.fdvs.dj.core.DJJRDesignHelper getNewDesign 
INFO: obtaining DynamicJasperDesign instance 
Exception in thread "main" java.lang.NoSuchMethodError: ar.com.fdvs.dj.domain.DynamicJasperDesign.setPrintOrder(B)V 
    at ar.com.fdvs.dj.core.DJJRDesignHelper.getNewDesign(DJJRDesignHelper.java:69) 
    at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperDesign(DynamicJasperHelper.java:207) 
    at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:535) 
    at ar.com.fdvs.dj.core.DynamicJasperHelper.generateJasperReport(DynamicJasperHelper.java:518) 
    at ar.com.fdvs.dj.test.BaseDjReportTest.testReport(BaseDjReportTest.java:83) 
    at FastReportTest.main(FastReportTest.java:34) 
Java Result: 1 
BUILD SUCCESSFUL (total time: 1 second) 
+0

版本3.2.1支持高达碧玉报告4.0 – 2012-02-18 01:31:02

+0

它取决于pom.xml,我不认为DJ 3.2.1支持jasper-report4.0 – unknown 2012-02-19 04:51:43

回答

3

如果您使用的是DynamicJasper 3.2.1你应该使用的外部库从DJ的pom.xml。

pom.xml文件的片段:

<dependencies> 
    <dependency> 
     <groupId>jasperreports</groupId> 
     <artifactId>jasperreports</artifactId> 
     <version>3.7.1</version> 
     <exclusions> 
      <exclusion> 
       <groupId>commons-collections</groupId> 
       <artifactId>commons-collections</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>commons-logging</groupId> 
       <artifactId>commons-logging</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>bouncycastle</groupId> 
       <artifactId>bcmail-jdk14</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>bouncycastle</groupId> 
       <artifactId>bcprov-jdk14</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>commons-collections</groupId> 
     <artifactId>commons-collections</artifactId> 
     <version>3.1</version> 
     <scope>compile</scope> 
    </dependency> 
    <dependency> 
     <groupId>commons-beanutils</groupId> 
     <artifactId>commons-beanutils</artifactId> 
     <version>1.7.0</version> 
    </dependency> 
    <dependency> 
     <groupId>opensymphony</groupId> 
     <artifactId>xwork</artifactId> 
     <version>1.2.1</version> 
     <scope>provided</scope> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>opensymphony</groupId> 
     <artifactId>webwork</artifactId> 
     <version>2.2.4</version> 
     <scope>provided</scope> 
     <optional>true</optional> 
    </dependency> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.3</version> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>net.sourceforge</groupId> 
     <artifactId>barbecue</artifactId> 
     <version>1.1</version> 
     <optional>true</optional> 
    </dependency> 
</dependencies> 

正如你所看到的这个版本DJ API(3.2.1)使用jasperreports 3.7.1

+0

它只是一个xml文件或特殊类型的文件...? 如何添加此文件...? – unknown 2012-02-17 12:28:55

+1

您是否听说过[Maven](http://maven.apache.org/)?您应该使用正确版本的库(在模块依赖项中)。 – 2012-02-17 12:41:00

+0

我不知道有关Maven的事情......?它与DJ有关吗???我正在使用最新的库,检查我的问题的开始......如果它是最新的,那么告诉我... – unknown 2012-02-17 12:44:07