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

标签 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 jar,如类路径中所示,还有 jasperreports 1.2.5 jar,请告知我已将 poi jar 从 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 的升级,我也应该升级我的碧 Jade jar

对于 jasper reports,我还没有升级,我正在使用 jasper reports 1.2.5 jar,我是否也应该升级它,请各位指教

最佳答案

java.lang.NoSuchMethodError 是未使用正确版本的库时的典型错误。

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

Jasper report releases

如果您使用 Jasper reports 1.2.5,这是其版本 Jasper report v 1.2.5 。您将在文件夹 lib 中找到要包含在 classpath 中的正确库。

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

注意:jasper 报告在新版本中将文件格式定义从 DTD 更改为 XSD 架构,因此您可能需要更改 header 在 .jrxml 中(或使用旧的 .jrxml 编译器)

关于java - java中没有这样的方法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34238872/

相关文章:

java - 引用从对象数组进行打印的方法时找不到符号错误

java - 类型 'com/fasterxml/jackson/datatype/jdk8/Jdk8Module'(当前帧,堆栈 [2])不可分配给 'com/fasterxml/jackson/databind/Module'

java - 如何使用 Java 在 Selenium WebDriver 的隐藏字段中键入一些文本

java - Apache POI : Why data is not properly inserted?

java - 组合框中的 Apache POI 双值

java - 如何在现有的 JVM 中运行程序?

java - 使用 DynamicReports 将 jzy3d 图表保存为 PDF

java - 如何将正确的表达式写入 boolean 值? (不能从 boolean 值转换为 boolean 值)

java - 在iReport表达式中调用Java API

java - 如何使用 Apache POI 加载大型 xlsx 文件?