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