Ich habe diese json DS:Was ist der richtige Weg zum Hinzufügen einer JSON-SubDataSource in Jasper Reports?
{
"customername":"home",
"workSiteRows":[
{
"invoiceRows":[
{
"candidateName":"name1",
"units":"13:00"
},
{
"candidateName":"name2",
"units":"18:30"
}
],
"workSiteName":"wsname1"
},
{
"invoiceRows":[
{
"candidateName":"name1",
"units":"13:00"
},
{
"candidateName":"name2",
"units":"18:30"
}
],
"workSiteName":"wsname2"
}
]
}
In meiner .jrxml Datei habe ich einen subreport definiert und ich versuche, eine subDataSource zu schaffen, um diesen subreport zu übergeben.
<subreport isUsingCache="false">
<reportElement x="0" y="10" width="555" height="30" uuid="b2d96c34-ad5d-4eb2-b218-43aad4e09282" />
<dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JsonDataSource)$P{REPORT_DATA_SOURCE}).dataSource("workSiteRows")]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{REPORT_DIR} + "\\invoice_ws_row.jasper"]]></subreportExpression>
</subreport>
Ich erhalte die folgende Ausnahme: Fehler Füllung drucken ...
java.lang.NoClassDefFoundError: org/codehaus/jackson/JsonNode java.lang.ClassNotFoundException: org.codehaus.jackson.JsonNode
Ich habe versucht, die Antwort von Frage mit http://community.jaspersoft.com/questions/956036/caused-javalangclassnotfoundexception-orgcodehausjacksonjsonnode-exception-ireport
Aber es funktioniert nicht. Das Problem ist, dass derzeit Jackson Core unter dem Repo "com.fasterxml.jackson.core"
ist, während iReport fragt nach "org.codehaus.jackson.core"
.
Versuchte für ältere Versionen von jackson Kern suchen, der unter org.codehaus sind und sie den iReport Classpath hinzufügen, aber es funktioniert immer noch nicht. Irgendwelche Ideen?
Es funktioniert. Vielen Dank. *** Facepalm ***, haben Sie jemals andere Alternativen zu Jasper Reports verwendet? – ionutab
Gern geschehen. Ich weiß nur, Jasper Report, seine freien und die beste verfügbare Lösung, aber es gibt noch viele Momente facepalm, wenn Sie es :) – hering
Ich bin mit Jaspersoft Studio 6.2.1 und es ist nicht möglich, die 'subDataSource' Methode zu verwenden, ohne zu Gießen 'net.sf.jasperreports.engine.data.JsonDataSource' –