2016-06-22 26 views
0

zuweisen Ich arbeite an JasperReports-Bibliothek in meinem JSF-Projekt. Zuerst entwickle ich nur ein einfaches Projekt von diesem tutorialjava.lang.ClassCastException: kann keine Instanz von net.sf.jasperreports.engine.base.JRBaseImage dem Feld

Aber in diesem Tutorial gibt es keine Anleitung, wie komplette Bibliotheken von JasperReports zu installieren.

ich versuche, es mir selbst aber immer Ausnahme:

java.lang.ClassCastException: kann nicht Instanz net.sf.jasperreports.engine.base.JRBaseImage zuweisen net.sf.jasperreports.engine Feld .base.JRBasePen.penContainer vom Typ net.sf.jasperreports.engine.JRPenContainer in Instanz net.sf.jasperreports.engine.base.JRBasePen

und

Caused by: java.lang.ClassCastException: cannot assign instance of net.sf.jasperreports.engine.base.JRBaseImage to field net.sf.jasperreports.engine.base.JRBasePen.penContainer of type net.sf.jasperreports.engine.JRPenContainer in instance of net.sf.jasperreports.engine.base.JRBasePen 
    at java.io.ObjectStreamClass$FieldReflector.setObjFieldValues(ObjectStreamClass.java:2133) 

Hier sind meine Methode, wo ich Bericht zu erzeugen versuchen:

JRBeanCollectionDataSource beanCollectionDataSource = new JRBeanCollectionDataSource(listOfStudent); 
String reportPath = FacesContext.getCurrentInstance().getExternalContext().getRealPath("/reports/ChartReport.jasper"); 
JasperPrint jasperPrint = JasperFillManager.fillReport(reportPath, new HashMap(), beanCollectionDataSource); 
JasperExportManager.exportReportToPdfStream(jasperPrint, outputStream); 

und meine Bibliotheken jene ich ohne Führer bin mit:

enter image description here

Kann mir jemand sagen, wo ich Fehler mache, Ich hoffe, es ist wegen der fehlenden wichtigen Bibliothek, aber ich kann keinen geeigneten Link für das Herunterladen von Bibliotheken.

+0

Sind Sie sicher, dass es notwendig ist, so alte Version (1.2.0) zu verwenden? –

+0

ist es nicht notwendig. –

+1

In diesem Fall ist es besser, Version 6.2.2 (letzte Version) zu verwenden. Sie können versuchen, maven Abhängigkeiten zu verwenden –

Antwort

0

Sie haben sowohl jasperreports-1.2.0.jar (was sehr alt ist, wie Alex K beobachtet hat) als auch jasperreports-javaflow.jar (nicht spezifizierte Version) im Klassenpfad Ihres Projekts.

jasperreports-javaflow jars sind Varianten der jasperreports jars mit Klassen, die für den Javaflow-basierten Subreport-Runner instrumentiert sind. Sie sollten nicht beide jasperreports.jar und jasperreports-javaflow.jar auf dem Klassenpfad haben; Behalten Sie die vanilla jasperreports.jar bei, sofern Sie nicht speziell den Javaflow-Subreport-Runner benötigen.