【发布时间】:2016-10-13 22:15:42
【问题描述】:
我正在尝试通过 putRequest api 将 jrxml 文件上传到 Jasper 服务器。使用以下 xml 输入在服务器 MyReports 路径中添加报告条目
xml
<?xml version="1.0" encoding="UTF-8"?>
<request operationName="put" locale="en">
<argument name="CREATE_REPORTUNIT_BOOLEAN">true</argument>
<!--MainReportunit-->
<resourceDescriptor name="TestReport1" wsType="reportUnit" uriString="/reports/Myreports/TestReport1" isNew="true">
<label><![CDATA[TestReport1]]></label>
<description><![CDATA[TestReport1]]></description>
<resourceProperty name="PROP_RESOURCE_TYPE">
<value><![CDATA[com.jaspersoft.jasperserver.api.metadata.jasperreports.domain.ReportUnit]]></value>
</resourceProperty>
<resourceProperty name="PROP_PARENT_FOLDER">
<value><![CDATA[/reports/Myreports]]></value>
</resourceProperty>
<resourceProperty name="PROP_RU_ALWAYS_PROPMT_CONTROLS">
<value><![CDATA[true]]></value>
</resourceProperty>
<resourceProperty name="PROP_RU_CONTROLS_LAYOUT">
<value><![CDATA[1]]></value>
</resourceProperty>
<resourceDescriptor wsType="datasource" isNew="false">
<resourceProperty name="PROP_REFERENCE_URI">
<value><![CDATA[/datasources/{DATASOURCE_NAME}]]></value>
</resourceProperty>
<resourceProperty name="PROP_IS_REFERENCE">
<value><![CDATA[true]]></value>
</resourceProperty>
</resourceDescriptor>
<resourceDescriptor name="TestReport1" wsType="jrxml" uriString="/reports/Myreports/TestReport1" isNew="true">
<label><![CDATA[TestReport1]]></label>
<description><![CDATA[TestReport1]]></description>
<resourceProperty name="PROP_RESOURCE_TYPE">
<value><![CDATA[com.jaspersoft.jasperserver.api.metadata.common.domain.FileResource]]></value>
</resourceProperty>
<resourceProperty name="PROP_HAS_DATA">
<value><![CDATA[true]]></value>
</resourceProperty>
<resourceProperty name="PROP_RU_IS_MAIN_REPORT">
<value><![CDATA[true]]></value>
</resourceProperty>
</resourceDescriptor>
</resourceDescriptor>
</request>
节点js代码
var parameters = {
putRequest: RequestXmlStr
}
var soap = require('soap');
soap.createClient(url, function (err, client) {
client.put(parameters, function (err, result) {
if (err) console.error(err);
});
});
没有附件就可以正常工作。但我不知道,在这个 xml 中在哪里包含 jrxml 数据或 base64 字符串。
【问题讨论】:
-
SOAP Web 服务是必需的吗?使用 REST_V2 可能会更容易
-
不,SOAP 方法不是强制性的。我需要在 Node.js 中实现这一点。
标签: node.js jasperserver