net.sf.jasperreports.engine.JRException: байтовые данные не найдены

1

Я пытаюсь перейти к шаблону строки строки строки jasper. Поэтому я передаю ключ параметра внутри шаблона и значения. Все работало, когда у меня был образ внутри моего проекта, но я хотел бы иметь его на другом месте. Есть ли способ считывать параметры из, например, файла свойств? Я не знаю, почему это разрешение не работает:

Мой образ:

<parameter name="imagesDir" class="java.lang.String" isForPrompting="false"/>

...

<image isLazy="true">
    <reportElement key="image-1" style="PHLabel" x="0" y="0" width="160" height="33"/>
    <imageExpression class="java.lang.String"><![CDATA["$P{imagesDir}"+"logo.bmp"]]></imageExpression>
</image>

ошибка:

Error during exporting report statement_account_10 to PDF.
net.sf.jasperreports.engine.JRException: Byte data not found at : 
((java.lang.String)parameter_imagesDir.getValue())logo.bmp
Теги:
jasper-reports

2 ответа

4
Лучший ответ

Хорошо, я нашел это... Должно быть:

<image isLazy="true">
    <reportElement key="image-1" style="PHLabel" x="0" y="0" width="160" height="33"/>
    <imageExpression class="java.lang.String"><![CDATA[$P{imagesDir}+"logo.bmp"]]></imageExpression>
</image>
  • 0
    Это другое решение решило эту проблему для меня, которое обладает большей гибкостью, чем ответ @ Marcin выше: альтернативное решение и указывает, где ServletContext считает корневой каталог (который изменился у нас во время обновления сервера).
1

У меня была эта проблема, и в моем случае проблема была в пути образа.

Первоначально у меня было что-то вроде:

<imageExpression><![CDATA["logo.bmp"]]></imageExpression>

Затем я заменил его на:

<imageExpression><![CDATA["/home/reports/logo.bmp"]]></imageExpression>

Очевидно, это сработало, потому что я использовал абсолютный путь (что не очень хорошо), Затем я изменил статический абсолютный путь с параметром для папки с изображениями.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню