Исключение при импорте JasperReport из приложения iReport в Java - PullRequest
0 голосов
/ 04 августа 2011

Я пытаюсь импортировать довольно сложный отчет в мое Java-приложение. Отчет включает подзапросы, шаблон стиля (jrtx) и изображения. В iReport все прекрасно работает, но когда я пытаюсь запустить отчет в приложении, выдается следующая ошибка:

exception
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is net.sf.jasperreports.engine.JRRuntimeException: Error parsing template XML

root cause
net.sf.jasperreports.engine.JRRuntimeException: Error parsing template XML

root cause
org.xml.sax.SAXParseException: Element type "paragraph" must be declared.

Я использую iReport версии 4.0.2 (с включенным режимом совместимости 4.0.1) для разработки отчетов и net.sf.jasperreports 4.0.1 для запуска отчетов в моем приложении. ПРИМЕЧАНИЕ. Версии iReport соответствуют версиям jasperReport.

1 Ответ

0 голосов
/ 04 августа 2011

Видимо, режим совместимости iReport 4.0.1 не работает на 100%. iReport 4.0.2 вставляет тег при работе с определенными свойствами. Тег <paragraph> не существует в JasperReport 4.0.1. Я бы понял это во время компиляции, если бы в отчет были встроены любые стили абзаца, а не шаблон стиля. Шаблоны рассматриваются во время выполнения.

Я конвертировал свои шаблоны так:

From:
<jasperTemplate>
...
  <style name="in-detail-fields">
    <paragraph leftIndent="3" rightIndent="3"/>
  </style>
...
</jasperTemplate>

To:
<jasperTemplate>
...
  <style name="in-detail-fields" leftIndent="3" rightIndent="3" />
...
</jasperTemplate>

К сожалению, iReport 4.0.2 неправильно интерпретирует шаблон после его изменения. :-(. Лучшим решением может быть снижение версии iReport до нужной версии.

...