Java 报表中的XML数据源不工作
我想用Java中的XML数据源编译一个.JRXML文件。它在iReport中工作得非常好。在Java中,它不起作用 当我将主查询语言设置为“xpath”时,会生成报告,但其中没有xml数据 使用“xpath2”作为主要查询语言,我得到一个错误,没有为“xpath2”语言注册查询执行器工厂,并且没有生成报告 它甚至不适用于你能想到的最简单的报告 到目前为止,我所尝试的: 已检查jasperreports.properties中的以下行:net.sf.jasperreports.query.executer.factory.xpath2=com.jaspersoft.jrx.query.JRXPathQueryExecuterFactory 在我的应用程序类路径中检查.jar文件jasperreports-extensions-3.5.3.jar 将这一行添加到我的Java代码中: jasperReport.setPropertynet.sf.jasperreports.query.executer.factory.xpath2,com.jaspersoft.jrx.query.JRXPathQueryExecuterFactory; 在Java中设置XML数据源: org.w3c.dom.Document Document=JRXmlUtils.parseJRLoader.getLocationInputStreamargs[2]; params.putJRXPathQueryExecuterFactory.PARAMETER_XML_DATA_DOCUMENT,DOCUMENT; 我的报告生成代码:Java 报表中的XML数据源不工作,java,xpath,jasper-reports,Java,Xpath,Jasper Reports,我想用Java中的XML数据源编译一个.JRXML文件。它在iReport中工作得非常好。在Java中,它不起作用 当我将主查询语言设置为“xpath”时,会生成报告,但其中没有xml数据 使用“xpath2”作为主要查询语言,我得到一个错误,没有为“xpath2”语言注册查询执行器工厂,并且没有生成报告 它甚至不适用于你能想到的最简单的报告 到目前为止,我所尝试的: 已检查jasperreports.properties中的以下行:net.sf.jasperreports.query.exec
在将jasper-compiler-jdt-5.5.23.jar添加到Java构建路径之后,我消除了xpath2错误。报告已生成,但没有数据源。它现在使用xpath数据源。我在Java应用程序中创建了数据源,而不是传递XML_URL。这不是完美的,但是一个很好的解决方法。这是我使用的代码:
org.w3c.dom.Document document = JRXmlUtils.parse(JRLoader.getLocationInputStream("/file/location.xml"));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JRXmlDataSource(document, "/xpath"));
您应该发布完整的示例:Java代码+jrxml文件+xml文件。
org.w3c.dom.Document document = JRXmlUtils.parse(JRLoader.getLocationInputStream("/file/location.xml"));
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JRXmlDataSource(document, "/xpath"));