Я создаю проект со стойками, и у меня проблема с использованием Jasper IReports. Я хочу экспортировать некоторую информацию в файл PDF, и я продолжаю получать java.lang.IllegalStateException: getOutputStream() уже был вызван ... Исключение из-за открытия ServletOutputStream в моем коде, когда страница уже открывает PrintWriter.Использование PrintWriter и OutputStream
Код в модели (так что это не в СПЯ, это в Java-файла), как это следующим образом:
public void handle(HttpServletResponse res, Connection connection, String path)throws Exception{
ServletOutputStream out = null;
try {
JasperDesign jasperDesign = JRXmlLoader.load(path);
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
byte[] bytes = JasperRunManager.runReportToPdf(jasperReport, null, connection);
res.setContentType("application/pdf");
res.setContentLength(bytes.length);
out = res.getOutputStream();
out.write(bytes, 0, bytes.length);
} catch (Exception e) {
e.printStackTrace();
} finally {
out.flush();
out.close();
}
Я проверил соединение, путь и HttpServletResponse и все работает нормально.
Я очень новичок с отчетами Jasper, а также с кодировкой в формате PDF, поэтому вы можете правильно определить, что у меня есть минимальное представление о том, что я делаю здесь, и что, очевидно, мой код копируется/вставляется из где-то через сеть.
Я попытался использовать PrintWriter вместо OutputStream, преобразовывая байты в String и используя метод PrintWriter.append (String) (allthought is not String is CharSequence), но он не извлекает данные в PDF.
Я также попытался получить PrintWriter, закройте его, чтобы открыть OutputStream (не работает) или отключить его (нет).
Любая помощь с решением использовать любой способ, который может отображать данные в pdf, будет отличным. Спасибо большое!
, кто открывает PrintWriter? – Bozho
Файл JSP пытается открыть PrintWriter при его запуске. Поэтому, когда я отправляю элемент управления в файл jsp через ActionMapping.findforward, JSP открывает PrintWriter и начинает показывать JSP. Я решил это, не пойдя никуда с моим поиском. Таким образом, нет загружаемого JSP-файла (загружать нечего), а код PDF (через OutputStream) переходит на страницу без загрузки jsp-файла и из-за этого без загрузки PrintWriter. – Random