rest — Ошибка API сервера PHP JasperReports

Я пытаюсь в конечном итоге запустить и отобразить отчеты с удаленного сервера Jasper в приложении PHP. Я пытаюсь сделать это с JRS-отдых-PHP-клиент проект на github.

Ошибка:

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

Мой PHP:

require_once __DIR__ . "/vendor/autoload.php";
use Jaspersoft\Client\Client;
$d = new Client(
"http://jasper.server.com/jasperserver-pro",
"username",
"password",
"organization");
$info = $d->serverInfo();

Есть идеи?

0

Решение

Глядя в код 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 с сервера, на котором развернут этот код? Иногда, например настройки брандмауэра могут мешать.
  • Называется ли организация точно так, как определено в свойствах организации на сервере? (Откройте репозиторий / щелкните правой кнопкой мыши по организации / свойствам / идентификатору ресурса)
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]