2016-08-05 3 views
0

JasperReportsライブラリを使用してPDFレポートを生成しています。私はこの報告書に問題を引き起こすQRコードを持っています。NoSuchMethodError JasperReportのレポートを生成中

jasperreports、itext-pdfa、itext-pdf、commons-beanutils、commons-collections、commons-digester、commons-logging、groovy-all、バーベキュー、バーコード、バーコード4j、バーティック-anim、バティック・ブリッジ、コア、w3c.css.sac、W3C、xmlgraphics・コモンズ、バティック、すべての

私は例外を受け取る:

java.lang.ClassCastException: org.apache.batik.anim.dom.SVGOMDocument cannot be cast to org.apache.batik.dom.svg.SVGOMDocument 
at org.apache.batik.bridge.BridgeContext.setDocument(Unknown Source) 
at org.apache.batik.bridge.GVTBuilder.build(Unknown Source) 
at net.sf.jasperreports.renderers.AbstractSvgDataToGraphics2DRenderer.ensureSvg(AbstractSvgDataToGraphics2DRenderer.java:166) 
at net.sf.jasperreports.renderers.AbstractSvgDataToGraphics2DRenderer.getDimension(AbstractSvgDataToGraphics2DRenderer.java:111) 
at net.sf.jasperreports.engine.export.JRPdfExporter$InternalImageProcessor.processGraphics2D(JRPdfExporter.java:1793) 
at net.sf.jasperreports.engine.export.JRPdfExporter$InternalImageProcessor.process(JRPdfExporter.java:1582) 
at net.sf.jasperreports.engine.export.JRPdfExporter$InternalImageProcessor.access$300(JRPdfExporter.java:1535) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportImage(JRPdfExporter.java:1475) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportElements(JRPdfExporter.java:1093) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportPage(JRPdfExporter.java:1056) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReportToStream(JRPdfExporter.java:920) 
at net.sf.jasperreports.engine.export.JRPdfExporter.exportReport(JRPdfExporter.java:537) 
at reports.JasperReport.generatePdf(JasperReport.java:178) 

間違っていますか?

+0

:例えば、クラスの一つのための完全なクラス名を使用する必要があります。 'anim.dom'は' dom.svg'と等しくない – Jens

+0

@ pulpet112完全なスタックトレースとは何ですか? –

+0

@Jens full stacktraceを追加しました – pulpet112

答えて

0

これは独自のコード(書いたもの)の場合、間違ったSVGOMDocumentクラス(異なるJavaパッケージに属する)をインポートしたためです。 適切なJava IDE(Eclipse、IntelliJ、NetBeans)を使用すると、すぐに把握できるはずです。あなたのコードの安定性が低下する可能性があります

import org.apache.batik.dom.svg.*; 
import org.apache.batik.anim.dom.*; 

、例えば次のような暗黙の輸入を回避することが可能と試み限りまた

、既存の作業コードの参照を変更する可能性があります。 明示的なインポートを使用します(インポートorg.apache.batik.dom.svg.SVGOMDocument)。

呼び出すメソッドの戻り値の型を調べ、適切なJavaパッケージからインポートします。 Eclipse IDEでは、上記のパッケージ/クラスを含むインポートを削除して、[ソース]> [インポートの整理(Ctrl-Shift-O)]を選択します。あなたは、単一のソースコードファイルで両方のクラスを持っている場合は

、あなたは2つの異なるクラスをMIS

org.apache.batik.dom.svg.SVGOMDocument document = SomeLibrary.getSomething(); 
+0

私は自分のコードを書いていますが、私はこのクラスを直接使用しません。私のコードでは、JRPdfExporterを使用してレポートをpdfにエクスポートします。そしてそれだけです - このクラスは他の人たちによって呼び出されますJasper libraries – pulpet112

関連する問題