Jasper Rest API,运行报告

时间:2012-03-02 17:54:07

标签: node.js rest report jasperserver

我目前正在尝试运行一个报告,感谢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

3 个答案:

答案 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/