在java中没有这样的方法错误

时间:2015-12-12 10:39:10

标签: java jasper-reports apache-poi

我收到以下错误,如下所示

java.lang.NoSuchMethodError: org.apache.poi.hssf.usermodel.HSSFSheet.addMergedRegion(Lorg/apache/poi/hssf/util/Region;)I
        at net.sf.jasperreports.engine.export.JRXlsExporter.createMergeRegion(JRXlsExporter.java:440)
        at net.sf.jasperreports.engine.export.JRXlsExporter.initCreateCell(JRXlsExporter.java:419)
        at net.sf.jasperreports.engine.export.JRXlsExporter.createTextCell(JRXlsExporter.java:381)
        at net.sf.jasperreports.engine.export.JRXlsExporter.exportText(JRXlsExporter.java:314)
        at net.sf.jasperreports.engine.export.JRXlsAbstractExporter.exportPage(JRXlsAbstractExporter.java:381)

我正在使用下面的poi罐子,如类路径所示,还有jasperreports 1.2.5 jar请告知我已经将poi罐子从2.5升级到3,所以请指教我是否需要升级jasperreports-1.2.5.jar与最新的poi jar同步

<classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/poi-3.5-FINAL.jar"/>
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/poi-contrib-3.5-final.jar"/>
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/poi-scratchpad-3.5-FINAL.jar"/>
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/dom4j-1.6.1.jar"/>  
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/poi-ooxml-3.5-FINAL.jar"/>

    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/poi-ooxml-schemas-3.6.jar"/>
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/xmlbeans-2.3.0.jar"/>
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/poi-ooxml-schemas-3.10-FINAL.jar"/>
    <classpathentry exported="true" kind="lib" path="thirdparty/POI-3.5/jsr173_1.0_api.jar"/>

虽然我做了一些分析并发现了这个网址http://community.jaspersoft.com/questions/531433/save-excel-jasperviewer 这建议与poi up graation我应该升级我的jasper罐子

对于jasper报告我没有升级我正在使用jasper报告1.2.5 jar我应该升级那个,伙计们请指教

1 个答案:

答案 0 :(得分:2)

不使用正确版本的库时,

java.lang.NoSuchMethodError是典型错误。

Jasper报告使用多个库,这些库可以在其分发中找到(在文件夹lib中),它们都应包含在classpath

Jasper report releases

如果您使用的是Jasper报告1.2.5,那么这是它的发布Jasper report v 1.2.5。您会在classpath文件夹lib中找到要包含的正确库。

但毫无疑问,最好升级到最新版本(发布此答案6.2.0时),特别是如果您需要导出到xlxsooxmlXSSF ,这在1.2.5中不支持

注意:jasper报告的更改是较新版本中从DTDXSD架构的文件格式定义,因此您可能需要更改.jrxml中的标头(或使用旧的.jrxml编译器)