«HTTP Status 404 - результат« null »не найден» при экспорте XLS с помощью веб-служб JasperReport (может не иметь ничего общего с Jasper) - PullRequest
1 голос
/ 19 сентября 2011

(Есть вероятность, что это не имеет ничего общего с Jasper, но это происходит только с моей реализацией веб-сервисов, а НЕ с обычным интерфейсом JasperServer)

Я реализовал веб-сервисы и когда я экспортирую вXLS Я вижу очень странное поведение (нет проблем с XLSX, CSV, PDF).Когда отчет возвращает небольшое число результатов, он не будет экспортироваться.Вместо этого мой браузер выдает: «HTTP Status 404 - результат« null »не найден».Когда есть большое количество результатов, он будет экспортирован правильно.Мне не удалось найти в журнале сообщения, которые бы содержали какие-либо подсказки.

Поэтому я удалил все полосы отчета, кроме деталей, и смог определить, что 43 или более строк будут правильно экспортировать XLS, но 42 или менее будутвызвать ошибку.Я понял это с помощью процесса исключения, изменив мой запрос с «выбрать ТОП 10 ...» на «выбрать ТОП 20 ...» на «выбрать ТОП 30 ...», и т. Д. И т. Д. 43 - странное число, такЯ думал, что это может быть связано с пикселями.Я поиграл с количеством пикселей в моей группе данных и во всем отчете, но проблема со строками 42 на 43 сохранялась.

В это время в моем отчете отображались три поля, поэтому я удалил два из них, выполнив командусообщить и проблема вернулась.Я не потрудился отточить точное количество строк, но теперь магическое число было где-то между 60 и 80 строками.

Вы можете увидеть фрагмент моего кода здесь: http://pastebin.com/MyPYMju4

        JasperPrint print; = client.runReport(rd, reportInputMap);
        response.setHeader("Content-Disposition", " inline; filename=report" + (new Date()).getTime() + "." + format.toLowerCase());
        JRAbstractExporter myExporter;

        /// ... if/else code to determine what file to export to ...

        myExporter = new JRXlsExporter();
        response.setContentType(FORMAT_CONTENTTYPE_MAP.get(format));
        myExporter.setParameter(JRExporterParameter.OUTPUT_STREAM, response.getOutputStream());
        myExporter.setParameter(JRExporterParameter.JASPER_PRINT, print);
        myExporter.exportReport();
...