PHP JasperReports服务器API错误

时间:2016-04-26 17:30:45

标签: php rest xampp jasper-reports jasperserver

我正在尝试最终运行并在PHP应用程序中显示来自远程Jasper Server的报告。我想要做的是github上的jrs-rest-php-client项目。

错误:

DataTable

我的PHP:

Fatal error: Uncaught exception 'Jaspersoft\Exception\RESTRequestException' with message 'An unexpected HTTP status code was returned by the server' in C:\xampp\htdocs\jrs\vendor\src\Jaspersoft\Tool\RESTRequest.php:409 
Stack trace: 
#0 C:\xampp\htdocs\jrs\vendor\src\Jaspersoft\Tool\RESTRequest.php(479): Jaspersoft\Tool\RESTRequest->handleError(0, Array, false) 
#1 C:\xampp\htdocs\jrs\vendor\src\Jaspersoft\Service\ReportService.php(40): Jaspersoft\Tool\RESTRequest->prepAndSend('https://jasper....', Array, 'GET', NULL, true) 
#2 C:\xampp\htdocs\jrs\report.php(30): Jaspersoft\Service\ReportService->runReport('/Reports/Distri...', 'html') 
#3 {main} thrown in C:\xampp\htdocs\jrs\vendor\src\Jaspersoft\Tool\RESTRequest.php on line 409

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

查看RESTRequest.php的代码,有两种情况会抛出此异常:

  • 返回带有未知错误代码的JSON结果集(未知含义与200 OK不同)
  • 根本没有返回JSON结果集

所以我怀疑连接不正常。要了解更多信息,您应该在代码中捕获异常并对其进行评估:

它可能看起来像这样(我对Java更熟悉):

try {
    $d = new Client(
        "http://jasper.server.com/jasperserver-pro",
        "username",
        "password",
        "organization"
    );  

    $info = $d->serverInfo();

} catch (RESTRequestException $e) {
    echo 'RESTRequestException:';
    echo 'Exception message:   ',  $e->getMessage(), "\n";
    echo 'Set parameters:      ',  $e->parameters, "\n";
    echo 'Expected status code:',  $e->expectedStatusCodes, "\n";
    echo 'Error code:          ',  $e->errorCode, "\n";
}

如果仍有错误,您可以查看以下内容:

  • 您可以从部署此代码的服务器访问jasper服务器吗?有时例如防火墙设置可能会干扰。
  • 组织的调用是否与服务器中组织属性中的定义完全相同? (打开存储库/右键单击organization / properties / resource-id)