Jump to content
Changes to the Jaspersoft community edition download ×

JaxenXmlDataSource in iReport


marip

Recommended Posts

Hi! I am evaluating jasperreports and struggling with xml data source. I want to use jaxen because xalan library causes some trouble in my app's xml handling.

  • I have defined XML file datasource. See attached xml.
  • Tools -> Options -> JasperReports Properties has default line for  net.sf.jasperreports.xpath.executer.factory = net.sf.jasperreports.engine.util.xml.JaxenXPathExecuterFactory
  • Then I have a sub data set in my template. See attached xml. It builds allright but preview causes an error when evaluating expression: net.sf.jasperreports.engine.data.JaxenXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//row"). Preview works if I cast to JRXmlDataSource instead. See error stack attached.

Is there a problem in xml file data source or in jasperreports properties?

 

Code:
PRODUCT VERSION:Product Version: Jaspersoft iReport Designer Professional 4.5.0Java: 1.7.0_02; Java HotSpot(TM) Client VM 22.0-b10System: Windows 7 version 6.1 running on x86; Cp1252; en_US (ireportpro)ERROR:Error filling print... Error evaluating expression :      Source text : ((net.sf.jasperreports.engine.data.JaxenXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//row") Setting up the file resolver...  net.sf.jasperreports.engine.fill.JRExpressionEvalException: Error evaluating expression :      Source text : ((net.sf.jasperreports.engine.data.JaxenXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//row")      at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:203)      at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:591)      at net.sf.jasperreports.engine.fill.JRCalculator.evaluate(JRCalculator.java:559)      at net.sf.jasperreports.components.list.FillDatasetRun.evaluate(FillDatasetRun.java:103)      at net.sf.jasperreports.components.list.BaseFillList.evaluate(BaseFillList.java:102)      at net.sf.jasperreports.engine.fill.JRFillComponentElement.evaluate(JRFillComponentElement.java:88)      at net.sf.jasperreports.engine.fill.JRFillElementContainer.evaluate(JRFillElementContainer.java:257)      at net.sf.jasperreports.engine.fill.JRFillBand.evaluate(JRFillBand.java:473)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillColumnBand(JRVerticalFiller.java:2021)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillDetail(JRVerticalFiller.java:755)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReportStart(JRVerticalFiller.java:265)      at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:128)      at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:836)      at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:118)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:435)      at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:271)      at com.jaspersoft.ireport.designer.compiler.IReportCompiler.run(IReportCompiler.java:991)      at org.openide.util.RequestProcessor$Task.run(RequestProcessor.java:572)      at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:997)  Caused by: java.lang.ClassCastException: net.sf.jasperreports.engine.data.JRXmlDataSource cannot be cast to net.sf.jasperreports.engine.data.JaxenXmlDataSource      at snmp45details_1328861141538_621235.evaluate(snmp45details_1328861141538_621235:175)      at net.sf.jasperreports.engine.fill.JREvaluator.evaluate(JREvaluator.java:190)      ... 18 more XML FILE DATASOURCE:<iReportConnection name="test-xml-source" connectionClass="com.jaspersoft.ireport.designer.connection.JRXMLDataSourceConnection"> <connectionParameter name="NumberPattern"><![CDATA[]]></connectionParameter> <connectionParameter name="DatePattern"><![CDATA[]]></connectionParameter> <connectionParameter name="UseConnection"><![CDATA[true]]></connectionParameter> <connectionParameter name="SelectExpression"><![CDATA[]]></connectionParameter> <connectionParameter name="Filename"><![CDATA[C:\Users\mari\poc-jasper\report.xml]]> </connectionParameter></iReportConnection>REPORT:<jasperReport> ...   <datasetRun subDataset="dataset1">     <dataSourceExpression><![CDATA[((net.sf.jasperreports.engine.data.JaxenXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("//row")]]>       </dataSourceExpression>   </datasetRun> ...</jasperReport>
Link to comment
Share on other sites

  • Replies 1
  • Created
  • Last Reply

Top Posters In This Topic

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...