Jasper Rest API,运行报告
我目前正在试图运行一个报告感谢Jasper Rest API并获得输出(PDF),文档的interessant部分在这里
所以我试过这个: http://localhost:8080/jasperserver/rest/report/reports/samples/report_mongodb_new_basic
知道我的报告在报告/样本中,其资源ID是: report_mongodb_new_basic
所以我仍然试图运行它与nodejs这里是我的代码:(请求是一个nodejs模块在这里可用)
login :
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); }
login后,作为文档显示我需要做一个PUT请求来运行报告:
request.put("http://localhost:8080/jasperserver/rest /report/reports/samples/report_mongodb_new_basic")
这当然不是,即使当我直接用Firefox浏览这个url时,它也是这样说的
"Report not found (uuid not found in session)"
由于这个PUT请求,uuid应该被创build
那么,URL的好语法和一个PUT请求获得uuid的好语法是什么?
乔尼提供了一个正确的答案。 但是这里更简单一些,使用REST_v2接口,可以在一个请求中运行并获取报告输出:
request.get("http://localhost:8080/jasperserver/rest_v2/reports/samples/report_mongodb_new_basic.pdf")
这在Web服务文档的 3.2.1节中有描述。
最近我有同样的问题。
login之后,在运行PUT之前,您应该运行GET请求
http://localhost:8080/jasperserver/rest/report/reports/samples/report_mongodb_new_basic
答案正文是resourceDescriptor
<resourceDescriptor> ... </resourceDescriptor>
那么你应该运行你的PUT请求,将请求体设置为resourceDescriptor
您可以添加报告参数来报告单位定义。 事实上,我使用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