1

Jasper レポート用に PHP フロント エンドをコーディングする必要があります。サーバーに正常に接続し、jasper REST 呼び出しを使用してリポジトリを認証および表示できました。ただし、レポートにアクセスしようとすると、応答本文に次のエラーが表示されます。

レポートが見つかりません (セッションで uuid が見つかりません)

phpコードは以下のとおりです。

   $uri = "http://localhost:8080/jasperserver/rest/report/samples/Client_Information_Report?RUN_OUTPUT_FORMAT=html";

    //PUT request to run the report
    $response = Httpful\Request::put($uri, $payload)
    ->authenticateWith("jasperadmin", "jasperadmin")
    ->send();

    $xml = new SimpleXMLElement($response->body);
    $uuid = (String)$xml->uuid; //The uuid is successfully returned

    $uri = "http://localhost:8080/jasperserver/rest/report/$uuid?file=report";
    $report = Httpful\Request::get($uri)
              ->authenticateWith("jasperadmin", "jasperadmin")
              ->send();

最初の PUT で uuid が返されることを確認できます。ここに欠けているものはありますか?どんな助けでも大歓迎です。

4

1 に答える 1

2

ジャネス、

最初に、PUT 応答からの情報をチェックして、実際にレポートが生成されていて、それが空でないかどうかを確認します。次のような情報が表示されるはずです。

<report>
    <uuid>d7bf6c9-9077-41f7-a2d4-8682e74b637e</uuid>
    <originalUri>/reports/samples/AllAccounts</originalUri>
    <totalPages>43</totalPages>
    <startPage>1</startPage>
    <endPage>43</endPage>
    <file type="image/png">img_0_0_0</file>
    <file type="image/gif">px</file>
    <file type="text/html">report</file>
    <file type="image/jpeg">img_0_42_27</file>
    <file type="image/png">img_0_42_26</file>
</report>

ページ数と利用可能なファイルに注目してください。

私は Httpful ライブラリを使用していませんが、チェックするもう 1 つのことは、ライブラリが基本認証を使用する方法です。2 回目の呼び出しで再度ログインし、新しいセッションを作成する場合があります。そのため、現在のセッションの UUID を見つけることができません。

JasperServer と PHPの完全なサンプルが GitHub にあり、確認できます。リポジトリの参照と入力コントロールのレンダリングが実装されています。あなたが使用している JasperReports Server のバージョンはわかりませんが、新しいバージョンには、レポートのリクエストをより簡単にする新しい REST API があります。JasperReports Server Web サービス ガイド(セクション 3.2)を確認してください。私はそれを私のプロジェクトのJRS-Wrapper Branch に実装しました。

お役に立てれば!!

マリアーノ

于 2013-02-22T17:05:37.527 に答える