Nano Hash - криптовалюты, майнинг, программирование

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

Я пытаюсь перейти к шаблону местоположения строки отчетов 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
27.11.2014

Ответы:


1

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

<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>
27.11.2014
  • Это другое решение решило эту проблему для меня, которое имеет немного большую гибкость, чем ответ @Marcin выше: альтернативное решение и указывает, где ServletContext считает корневым каталогом (который изменился у нас во время обновления сервера). 09.06.2017

  • 2

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

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

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

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

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

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

    09.07.2016
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..