Web services Jaspert报表使用web服务从提供者获取数据。如何?

Web services Jaspert报表使用web服务从提供者获取数据。如何?,web-services,jasper-reports,Web Services,Jasper Reports,有一个系统,它有数据,可以通过web服务(例如LotusNotes数据库)提供数据。Jasper可以通过调用web服务获取其报告的数据吗 可以,但很快就会变得非常复杂。但是如果你想沿着这条路走下去,那绝对是有可能的。您必须定义数据源,如下所示: new net.sf.jasperreports.engine.data.JRXmlDataSource( net.sf.jasperreports.engine.util.JRLoader.getLocationInputStream("http://

有一个系统,它有数据,可以通过web服务(例如LotusNotes数据库)提供数据。Jasper可以通过调用web服务获取其报告的数据吗

可以,但很快就会变得非常复杂。但是如果你想沿着这条路走下去,那绝对是有可能的。您必须定义数据源,如下所示:

new net.sf.jasperreports.engine.data.JRXmlDataSource(
net.sf.jasperreports.engine.util.JRLoader.getLocationInputStream("http://yourserver.com/xml_data_source")
请参阅post,其中似乎有人也开始了类似的探索,从远程服务器检索xml数据以用于报告


也就是说,如果您在代码中从服务器获取数据,选择报表所需的字段,并将其作为JRMapCollection数据源传入,那么可能会少很多工作,代码也可能更易于维护,特别是如果远程服务提供wsdl,您可以使用Apache Axis之类的工具根据该wsdl生成客户端。

您可以通过实现接口来编写自定义数据源


完整解释:。

现在更好的解决方案是使用Jasper数据源SPI,使您的Restful服务成为数据源,就像JDBC数据源一样


如果你写了这篇文章,它将适用于你所有的服务,因为它是通用的。

现在可以使用Web服务数据源

这个社区项目实现了一个自定义数据源,它使用最新的自定义数据源框架(内部利用数据适配器)构建

它还在JasperReports服务器内部工作:

您可以使用它来填充基于查询的输入控件,以及通过主题使用它进行临时报告(对于商业版本)


谢谢

您能提供更多详细信息吗?