2013-10-09 74 views
1

guys!對於很長一段時間我不能修復異常:java.lang.NoSuchMethodError:com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V異常:java.lang.NoSuchMethodError:com.lowagie.text.pdf.PdfWriter.setRgbTransparencyBlending(Z)V

我已經添加所有需要罐子到類路徑:

  • 公地的BeanUtils-1.8.0
  • 公地集合-2.1.1
  • 公共沼氣池-2.1.0
  • 公地javaflow-20060411
  • 共享記錄-1.1.1
  • iText的 - 2.1.5
  • JasperReports的 - 5.1.0

我看到了JasperReports的here要求,所以我一直都需要的庫,但是,無論如何,我不能修復的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) 

    } 

} 

和異常的描述

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) 

我可以創建PdfWriter類的實例(檢查自己)

謝謝您的幫助

+1

請檢查您的版本; 'NoSuchMethodError'通常意味着它們不同步(JVM找到類,但類看起來不同於預期)。 – chrylis

+0

@AndrewValevskiy您可以隨時查看您的* JR *庫的pom.xml以獲取所有正確的依賴關係 –

回答

7

jasperreports-5.1.0需求itext-2.1.7

你可以看到它在jasperreports-5.1.0項目pom

<dependency> 
    <groupId>com.lowagie</groupId> 
    <artifactId>itext</artifactId> 
    <version>2.1.7.js2</version> 
    <scope>compile</scope> 
</dependency> 

您需要iText的版本升級到版本2.1.7 最低

1

我有相同的[runtime] error。我意識到的是,我的「蠟染」庫有錯誤的罐子。我從org.apache.xmlgraphics獲得了所有版本1.7的罐子。我使用碧玉這樣:

<dependency> 
     <groupId>net.sf.jasperreports</groupId> 
     <artifactId>jasperreports</artifactId> 
     <version>4.0.0</version> 
    </dependency> 

蠟染,例如:

<dependency> 
     <groupId>org.apache.xmlgraphics</groupId> 
     <artifactId>batik-anim</artifactId> 
     <version>1.7</version> 
</dependency> 

而且,我確信我只有iText的一個實例在POM:

<dependency> 
    <groupId>com.lowagie</groupId> 
    <artifactId>iText</artifactId> 
    <version>2.1.7</version> 
</dependency> 

希望有幫助。

0

我有同樣的問題,從網格檢索數據時使用

flying-saucer-pdf

寫入到PDF的isuue爲com.lowagie(iText的)組織。xhtmlrenderer(飛碟 - PDF)版本不兼容,

使用後,

<dependency> 
     <groupId>com.lowagie</groupId> 
     <artifactId>itext</artifactId> 
     <version>2.1.7</version> 
    </dependency> 
    <dependency> 
     <groupId>org.xhtmlrenderer</groupId> 
     <artifactId>flying-saucer-pdf</artifactId> 
     <version>9.0.7</version> 
    </dependency> 
0

我也遇到同樣的情況,但最終成功解決問題。

如果您正在使用maven然後從下面鏈接添加下面的依賴

<dependency> <groupId>org.eclipse.birt.runtime.3_7_1</groupId> <artifactId>com.lowagie.text</artifactId> <version>2.1.7</version> </dependency>

或下載JAR並添加到您的構建路徑

com.lowagie.text_2.1.7

這將是沒有用的加itext-2.1.7.jar,也是最新版本是itextpdf-5.5.9.jar

+0

請不要請求不要被拒絕投票 – Deepend

相關問題