Не удалось инициализировать класс net.sf.jasperreports.engine.util.JRStyledTextParser - PullRequest
18 голосов
/ 15 февраля 2011

Я пытаюсь отобразить свои отчеты в браузере, но все время получаю эту ошибку:

enter image description here

странно, что это происходит только тогда, когда япытаться сгенерировать отчеты из версии, установленной на сервере, но не тогда, когда я делаю это локально с моего компьютера

Вы хоть представляете, почему это происходит?

Ответы [ 17 ]

8 голосов
/ 05 июня 2014

Это похоже на проблему безголового режима. Вам необходимо установить для свойства java.awt.headless значение true. Это можно сделать с помощью:

static {
    System.setProperty("java.awt.headless", "true");
}

Или, установив свойство без заголовка в команде запуска tomcat как -Djava.awt.headless=true

Кроме того, вы можете прочитать больше о том, почему это необходимо, вы можете прочитать о режиме без головы здесь

7 голосов
/ 08 мая 2014

Это также может быть вызвано отсутствием / недоступностью каталога «temp» Java.В Font.java создаются временные файлы:

Files.createTempFile("+~JF", ".tmp").toFile();

В одной системе в папке Tomcat отсутствовал каталог 'temp', но Java был настроен для его использования:

-Djava.io.tmpdir=C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\temp

КСТАТИ.в первый раз, после перезапуска Tomcat, сервис фактически выдавал IOException, но затем JasperReports что-то кешировал, и при последующих вызовах трассировка стека была точно такой, как здесь описано.

7 голосов
/ 21 мая 2013

Для тех, кто все еще сталкивается с этой проблемой: на Ubuntu Server 12.04 с JRE без OpenJDK она была просто решена с помощью

apt-get install ttf-dejavu-extra
6 голосов
/ 05 мая 2011

Это недостающие банки в проблеме пути к классам.

У меня возникла эта проблема, и я обнаружил, что с помощью добавления отсутствующих jar-файлов в путь к классам это решило проблему.

Из статьи ниже java.dzone.com статья Я обнаружил, что необходимые минимальные банки ... Теперь номера версий изменились, но только с этими библиотеками мне удалось заставить его работать.

  • JasperReports-2.0.4.jar
  • Обще-варочного-1.7.jar
  • commons-collection-2.1.jar (commons-collection.jar)
  • Обще-каротаж 1.0.2.jar
  • commons-beanutils.jar
  • iText-2.0.7.jar (используется для экспорта информации в PDF)
5 голосов
/ 04 августа 2018

Я получил эту ошибку при развертывании приложения Springboot (включая отчеты Jasper) в Docker-контейнере. Проблема была в openjdk: 8-jdk-alpine , который я использовал для создания среды Docker-контейнера. Это ошибка в поддержке шрифтов. Поэтому я переключился на openjdk: 8-jre (или версии OpenJDK 7 также помогут), и это сработало для меня. Я потратил несколько дней, чтобы исправить эту ошибку.

4 голосов
/ 27 сентября 2011

Чтобы решить проблему, выполните следующие действия:

  1. Переключен с Open JDK на Sun JDK
  2. Установленные шрифты MS Core
  3. Упакованный файл библиотеки JasperReport с приложением
4 голосов
/ 14 ноября 2011

это могут быть проблемы с памятью, перезагрузите сервер.

1 голос
/ 20 марта 2017

Немного поздно, но вот почему у нас возникла эта проблема ... Мы недавно начали разрабатывать с IntelliJ вместо Eclipse.Мы просто забыли запустить IntelliJ в качестве администратора ... Мы делали это с Eclipse уже давно, но просто не думали об этом с IntelliJ.В конце концов, я думаю, что шрифты не были найдены или папка не была найдена, так как на диске c было недостаточно прав для чтения / записи.

0 голосов
/ 30 октября 2017

Вы можете попробовать сделать переход на jdk7, он мне подходит.

Извините, мой английский!

0 голосов
/ 19 июня 2017

Я столкнулся с той же проблемой на моей машине для разработки.В основном это произошло из-за проблемы на сервере приложений ( Apache tomcat )

В основном я случайно удалил папку " temp " в корневом каталоге сервера.Так что Джаспер не может скомпилировать отчет и приступить к генерации отчета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...