Jasper reports DynamicJasper:如何修复java.lang.NoSuchMethodError错误

Jasper reports DynamicJasper:如何修复java.lang.NoSuchMethodError错误,jasper-reports,dynamic-jasper,Jasper Reports,Dynamic Jasper,我有一个动态jasper报告的示例 我正在使用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

我有一个动态jasper报告的示例

我正在使用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;
导入net.sf.jasperreports.view.JasperDesignViewer;
导入net.sf.jasperreports.view.JasperViewer;
导入ar.com.fdvs.dj.domain.DynamicReport;
导入ar.com.fdvs.dj.domain.builders.FastReportBuilder;
导入ar.com.fdvs.dj.test.BaseDjReportTest;
公共类FastReportTest扩展了BaseDjReportTest{
公共DynamicReport buildReport()引发异常{
FastReportBuilder drb=新的FastReportBuilder();
addColumn(“状态”,“状态”,String.class.getName(),30)
.addColumn(“分支”,“分支”,String.class.getName(),30)
.addColumn(“产品线”,“产品线”,String.class.getName(),50)
.addColumn(“项”,“项”,String.class.getName(),50)
.addColumn(“项目代码”,“id”,Long.class.getName(),30,true)
.addColumn(“数量”,“数量”,Long.class.getName(),60,true)
.addColumn(“金额”,“金额”,Float.class.getName(),70,true)
.addGroups(2)
.setTitle(“2006年11月”销售报告)
.setSubtitle(“此报告是在“+新日期()生成的”)
.SetPrintBackgroundOnAddress(真)
.setUseFullPageWidth(真);
DynamicReport dr=drb.build();
返回dr;
}
公共静态void main(字符串a[])引发异常{
FastReportTest测试=新的FastReportTest();
//测试。
test.testReport();
test.exportToJRXML();
JasperViewer.viewReport(test.jp);//最后显示报告
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)

如果您使用的是
dynamicjapper 3.2.1
,则应使用
DJ
的pom.xml中的外部库

pom.xml文件的片段:


jasperreports
jasperreports
3.7.1
公地收藏
公地收藏
公用记录
公用记录
弹跳船舱
bcmail-jdk14
弹跳船舱
bcprov-jdk14
公地收藏
公地收藏
3.1
编译
公地小海狸
公地小海狸
1.7.0
开放交响乐团
xwork
1.2.1
假如
真的
开放交响乐团
网络作品
2.2.4
假如
真的
javax.servlet
servlet api
2.3
假如
net.sourceforge
烧烤
1.1
真的

正如您所看到的,
DJ-API的这个版本(3.2.1)正在使用
jasperreports 3.7.1
等等。

它只是一个xml文件或特殊类型的文件。。。??如何添加此文件…?您听说了吗?您应该使用正确版本的库(在模块依赖项中)。我对Maven一无所知。。。??这和DJ有关吗。。??我正在使用最新的库,请检查问题的开头。。。如果它不是最新的,告诉我…你不应该使用最新版本的库。您应该使用与posted pom.xml文件中相同的版本。例如,您应该使用
jasperreport-3.7.1.jar
。你可以阅读关于ApacheMaven的
apacheMaven
——有很多书和文章。。。我试试看。。如果需要,请告诉你。。。。非常感谢…3.2.1版最多支持jasper reports 4.0它取决于pom.xml,我认为DJ 3.2.1不支持jasper-report4.0