Jasper Rest API, запустить отчет - PullRequest
2 голосов
/ 02 марта 2012

Я сейчас пытаюсь запустить отчет благодаря Jasper Rest API и получить вывод (PDF), интересная часть документа: здесь

Итак, я попробовал это: http://localhost:8080/jasperserver/rest/report/reports/samples/report_mongodb_new_basic

Зная, что мой отчет находится в отчетах / образцах, а его идентификатор ресурса: report_mongodb_new_basic

Так что я все еще пытался запустить его с помощью nodejs, вот мой код: (запрос доступен для модуля nodejs здесь )

Логин:

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);
    }

После входа в систему, как показано в документе, мне нужно выполнить запрос PUT для запуска отчета:

     request.put("http://localhost:8080/jasperserver/rest
     /report/reports/samples/report_mongodb_new_basic")

Это не работает, конечно, даже когда я напрямую иду на этот URL с Firefox , говорят

"Report not found (uuid not found in session)"

UUID должен быть создан благодаря этому запросу PUT

Каков хороший синтаксис URL-адреса и синтаксис запроса PUT для получения uuid и после, если возможно, PDF-файла с get?

Ответы [ 3 ]

1 голос
/ 29 октября 2013

Джонни дал правильный ответ.Но вот более простой, использующий интерфейс REST_v2, который позволяет вам запускать и получать выходные данные отчета в одном запросе:

        request.get("http://localhost:8080/jasperserver/rest_v2/reports/samples/report_mongodb_new_basic.pdf")

Это описано в разделе 3.2.1 документации веб-сервисов.

0 голосов
/ 25 апреля 2013

Пример полного скрипта для получения отчета в Jasper, но в Ruby http://www.redrails.com.br/2013/03/07/ruby-client-para-rest-api-do-jasper-report-server/

0 голосов
/ 26 сентября 2012

Недавно у меня возникла та же проблема.

После входа в систему и перед запуском 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

...