我目前正在尝试运行一个报告,感谢Jasper Rest API并获得输出(PDF),该文档的interessant部分是here
所以我尝试了这个:http://localhost:8080/jasperserver/rest/report/reports/samples/report_mongodb_new_basic
知道我的报告位于报告/示例中,其资源ID为:report_mongodb_new_basic
所以我仍尝试使用nodejs运行它,这是我的代码: (request是一个可用的nodejs模块here)
登录:
var request = require("request");
request.post({url: "http://localhost:8080/jasperserver/rest/login",
qs: {j_username: "jasperadmin", j_password: "jasperadmin"}},
function(err, res, body) {
if(err) {
return console.error(err);
}
登录后,作为doc show,我需要执行PUT请求来运行报告:
request.put("http://localhost:8080/jasperserver/rest
/report/reports/samples/report_mongodb_new_basic")
这当然不起作用,即使我直接使用此网址 Firefox ,它说
"Report not found (uuid not found in session)"
由于这个PUT请求,应该创建uuid
那么URL的良好语法和获取 uuid 的PUT请求的良好语法是什么?如果可能的话,如果可能的话,带有get的pdf
答案 0 :(得分:1)
jonny提供了正确的答案。但是这里更简单,使用REST_v2接口,允许您在单个请求中运行并获取报告输出:
request.get("http://localhost:8080/jasperserver/rest_v2/reports/samples/report_mongodb_new_basic.pdf")
web services documentation的第3.2.1节对此进行了描述。
答案 1 :(得分:0)
最近我遇到了同样的问题。
登录后,在运行PUT之前,您应该在
上运行GET请求 http://localhost:8080/jasperserver/rest/report/reports/samples/report_mongodb_new_basic
回答正文是resourceDescriptor
<resourceDescriptor>
...
</resourceDescriptor>
然后您应该将请求主体设置为resourceDescriptor
运行您的PUT请求您可以将报告参数添加到报告单位定义中。实际上,我使用XMLRemoteDatasource来获取我的数据 所以我向report_unit
添加了一个参数 ...
<parameter name="XML_URL" class="java.lang.String">
<![CDATA[http://$ENV{HTTP_HOST}/some_url]]>
</parameter>
</resourceDescriptor>
这帮助了Jasper Server 4.5 Community Edition
答案 2 :(得分:0)
在Jasper中获取报告的完整脚本示例,但在Ruby中 http://www.redrails.com.br/2013/03/07/ruby-client-para-rest-api-do-jasper-report-server/