OSGI Felix с отчетами Jasper

Я хочу создать модуль для создания отчетов с использованием OSGI (Felix в Glassfish),

Во-первых, я загрузил и развернул пакет Jasper Reports Bundle, развертывание возвращает «ОК».

После того, как я создал пакет проекта, который импортирует пакеты отчетов Jasper, развертывание пакета возвращает «ОК».

Я беру OutputStream сервлета и беру Jasper InputStream из другого пакета и обрабатываю его с помощью этого кода.

public void generateReportFromDatasource(InputStream inputStream,
                                         OutputStream outputStream,
 Map parameters,
 JRDataSource jrDataSource) {

    try {
        JasperRunManager.runReportToPdfStream(inputStream, outputStream,
                parameters,jrDataSource);

    } catch (Throwable e) {
        logger.error(e.getMessage(), e);
    }
}

Но результат Jasper Report - ошибка, но я не могу читать четко.

[2014-10-23T17:22:36.362-0300] [glassfish 4.0] [SEVERE] [] [] [tid: _ThreadID=24     _ThreadName=Thread-4] [timeMillis: 1414095756362] [levelValue: 1000] [[
java.lang.NoClassDefFoundError: Could not initialize class net.sf.jasperreports.engine.util.JRStyledTextParser
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:124)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:89)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:104)
   at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:62)
   at net.sf.jasperreports.engine.fill.JRFiller.createFiller(JRFiller.java:179)
at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:108)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:668)
at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:649)
at net.sf.jasperreports.engine.JasperRunManager.runToPdfStream(JasperRunManager.java:437)
at net.sf.jasperreports.engine.JasperRunManager.runReportToPdfStream(JasperRunManager.java:858)
at com.roshka.javorai.report.client.JavoraiReportManagerimpl.generateReportFromDatasource(JavoraiReportManagerimpl.java:75)

Мой вопрос в том, что я не вижу ошибки, потому что в пакете JasperReports есть JRStyledTextParser, и я не вижу класс, который, как он говорит, не найден.


person jrey    schedule 23.10.2014    source источник
comment
Тестовый блок (без OSGI) работает нормально   -  person jrey    schedule 24.10.2014


Ответы (1)


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

Package-Import: net.sf.jasperreports.engine.util
person Achim Nierbeck    schedule 25.10.2014
comment
У меня есть импорт, я решаю свою проблему с помощью этого github.com/ieugen/jasperreports-5.1 .2-осги - person jrey; 27.10.2014
comment
ну да, вам также нужен пакет, экспортирующий эти пакеты :-) - person Achim Nierbeck; 27.10.2014