使用 XML_URL 调用 Jasper Reports Server

Calling Jasper Reports Server using XML_URL

我创建了一个 .jrxml 文件,该文件 运行 在 JasperSoftStudio 中使用指向本地 XML 文件的数据源适配器非常好,但是我无法执行来自 JasperReports Server 的报告,一旦 .jrxml 文件和 .xml 文件被移动到服务器。

上传 .jrxml 文件并尝试从 JasperReports Server 运行 后,我得到一个空报告(如预期的那样)

然后我手动把SampleReport.xml放在应用程序的根目录下(C:\Jaspersoft\jasperreports-server-cp-6.0.1\apache-tomcat\webapps\jasperserver)然后我尝试通过附加

来加载报告(使用 .xml 文件)

&XML_URL=SampleReport.xml到报告的URL。

我也尝试附加 &XML_URL=https://localhost:8080/jasperserver/SampleReport.xml(这个 URL 将正确显示 .xml 文件,如果它自己输入的话)

我做错了什么?

我已尝试按照 http://community.jaspersoft.com/wiki/remote-xml-datasource 中的说明进行操作,但无济于事。

我按照提示复制了com.jaspersoft.studio.data_6.0.4.final.jar,然后重启了Tomcat服务器。我还在我的 .jrxml 文件

中设置了以下内容
<parameter name="xml_url" class="java.lang.String">
        <defaultValueExpression><![CDATA["http://localhost:8080/simple.xml"]]></defaultValueExpression>
    </parameter>
    <queryString language="xPath">
        <![CDATA[/ROOT/BEAN]]>
    </queryString> 

我就是这样解决的。

步骤 1: 我没有通过参数 XML_URL 传递 XML 文件的名称,而是通过参数 net.sf.jasperreports.xml.source 传递了它 (感谢来自 How to use xml data source on jasper server 的@kraig)

第 2 步:我意识到我需要定义任何传递给报表服务器中的报表的参数。所以我添加了一个名为 net.sf.jasperreports.xml.source 的新输入控件,然后我编辑了报表,并将这个输入控件添加到报表中。 (感谢 Passing parameters through the url 中的@Ibrahim Apachi)

第三步:我在报表的.jrxml中设置了net.sf.jasperreports.xml.source参数的默认值。

<parameter name="net.sf.jasperreports.xml.source" class="java.lang.String">
        <defaultValueExpression><![CDATA["https://www.example.com:8080/jasperserver/DefaultReport.xml"]]></defaultValueExpression>
</parameter>

[如果没有提供其他 xml 来源,这是默认使用的 xml 来源。如果提供了另一个来源,那么它会覆盖这个默认值...]

第 4 步:然后我通过将 &net.sf.jasperreports.xml.source=https://www.example.com:8080/jasperserver/SampleReport.xml 附加到 Jasper Server

报告的 URL 来调用报告