exception:java.lang.NoSuchMethodError:com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V

And*_*kiy 2 java jar jasper-reports

伙计们!很长一段时间我无法修复异常:java.lang.NoSuchMethodError:com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V

我将所有需要的jar添加到classpath中:

  • 公地的BeanUtils-1.8.0
  • 公地集合-2.1.1
  • 公共沼气池-2.1.0
  • 公地javaflow-20060411
  • 共享记录-1.1.1
  • itext - 2.1.5
  • jasperreports - 5.1.0

我在这里看到了JasperReports的要求,所以我都需要库,但是,无论如何,我无法修复bug

我的代码:

    class ForIReport {

    public static void main(String[] args) {

//        def conn = Sql.newInstance(
//                "jdbc:sqlserver://localhost:1433;databaseName=twitter",
//                'sa',
//                'sunrise123',
//                'com.microsoft.sqlserver.jdbc.SQLServerDriver')

//        Class.forName("com.microsoft.jdbc.SQLServerDriver").newInstance();
//        Connection conn = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433", 'sa', 'sunrise123');

        def fileName = "C:/Users/avalev/Documents/iReport/First.jasper"

        def outFileName = "First.pdf"

        HashMap hm = new HashMap()

        JasperPrint print = JasperFillManager.fillReport(fileName, hm, new JREmptyDataSource())


        JRExporter exporter = new JRPdfExporter()

        exporter.setParameter(
                JRExporterParameter.OUTPUT_FILE_NAME,
                outFileName);

        exporter.setParameter(JRExporterParameter.JASPER_PRINT, print)

        exporter.exportReport()

        println("Created file :" + outFileName)

    }

}
Run Code Online (Sandbox Code Playgroud)

和例外的描述

log4j:WARN No appenders could be found for logger (net.sf.jasperreports.extensions.ExtensionsEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Exception in thread "main" java.lang.NoSuchMethodError: com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:596)
    at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:419)
    at net.sf.jasperreports.engine.JRExporter$exportReport.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
    at ForIReport.main(One.groovy:51)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Run Code Online (Sandbox Code Playgroud)

我可以创建PdfWriter类的实例(用于检查我自己)

谢谢您的帮助

M. *_*bas 8

jasperreports-5.1.0需求itext-2.1.7.

你可以在项目的pom中看到它jasperreports-5.1.0:

<dependency>
    <groupId>com.lowagie</groupId>
    <artifactId>itext</artifactId>
    <version>2.1.7.js2</version>
    <scope>compile</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

您需要将itext的版本升级到最低版本2.1.7.