Создание PDF из файла отчета Pentaho .prpt в Java - путаница с зависимостями - PullRequest
3 голосов
/ 23 августа 2011

Может ли кто-нибудь помочь мне начать создавать PDF-файлы из файлов Pentaho .prpt с использованием Java в среде maven?

У меня есть книга Pentaho Reporting 3.5 для разработчиков Java, и я пробую оттуда пример, по сути:

ResourceManager manager = new ResourceManager();
manager.registerDefaults();
Resource resource = manager.createDirectly(reportURL, MasterReport.class);
MasterReport report = (MasterReport) resource.getResource();
PdfReportUtil.createPDF(report, outputStream);

Моя проблема в том, что я не могу найти MasterReport.class.

Я много раз пытался вытащить зависимости из репозитория Maven в Пентахо (http://repo.pentaho.org/artifactory/repo), и я все еще не уверен, что у меня есть правильные версии банок - но я могу ' я не могу найти какую-либо документацию или другие примеры, так что все это методом проб и ошибок. В книге нет списка версий, хотя в нем говорится, какие файлы jar используются.

Кто-нибудь знает, где я могу получить MasterReport? И / или какие версии различных пентахо и связанных с ними банок мне нужны?

ОБНОВЛЕНИЕ: используя JFreeReport.class вместо MasterReport.class (см. Мои искаженные комментарии ниже), я могу добраться до точки исключения разбора:

Вот мой фрагмент кода:

    <dependency>
        <groupId>pentaho</groupId>
        <artifactId>pentaho-reporting-engine-classic</artifactId>
        <version>0.8.9.8</version>
    </dependency>

    <dependency>
        <groupId>pentaho</groupId>
        <artifactId>pentaho-reporting-engine-classic-ext</artifactId>
        <version>0.8.9.8</version>
    </dependency>

    <dependency>
        <groupId>pentaho</groupId>
        <artifactId>libloader</artifactId>
        <version>0.3.7</version>
    </dependency>

    <dependency>
        <groupId>pentaho</groupId>
        <artifactId>libxml</artifactId>
        <version>0.9.11</version>
    </dependency>

    <dependency>
        <groupId>pentaho</groupId>
        <artifactId>libformula</artifactId>
        <version>0.1.18</version>
    </dependency>

    <dependency>
        <groupId>jfree</groupId>
        <artifactId>jcommon</artifactId>
        <version>1.0.12</version>
    </dependency>

    <dependency>
        <groupId>jfree</groupId>
        <artifactId>jcommon-serializer</artifactId>
        <version>0.2.0</version>
    </dependency>

А вот и исключение:

org.jfree.resourceloader.ResourceCreationException: Unable to parse the document
at org.jfree.xmlns.parser.AbstractXmlResourceFactory.create(AbstractXmlResourceFactory.java:215)
at org.jfree.resourceloader.ResourceManager.performCreate(ResourceManager.java:455)
at org.jfree.resourceloader.ResourceManager.create(ResourceManager.java:383)
at org.jfree.resourceloader.ResourceManager.create(ResourceManager.java:329)
at org.jfree.resourceloader.ResourceManager.createDirectly(ResourceManager.java:315)

1 Ответ

3 голосов
/ 25 августа 2011

Вы используете абсолютно устаревшую версию механизма отчетов.Мы перестали использовать имя JFreeReport несколько лет назад.

Текущая версия 3.8, а вы, похоже, используете 0.8.9.Не делайте этого, иначе вы испытываете боль и страдания, так как все современные инструменты (например, дизайнер отчетов) не будут работать для вас.

Книга "Pentaho Reporting 3.5" требует как минимум Pentaho Reporting 3.5,;)

В Пентахо открыт общедоступный репозиторий Maven на repository.pentaho.org, в котором, среди прочего, содержатся последние артефакты, сообщающие о Пентахо.Используйте эту ссылку, чтобы просмотреть информацию о POM для последней версии:

http://repository.pentaho.org/artifactory/webapp/browserepo.html?pathId=pentaho%3Apentaho-reporting-engine%2Fpentaho-reporting-engine-classic-core%2F3.8.1-GA%2Fpentaho-reporting-engine-classic-core-3.8.1-GA.pom

Все, что вам нужно, это включить классическое ядро ​​движка и, в конечном итоге, любой проект расширения, который вам может понадобиться.Библиотеки и все внешние зависимости должны автоматически загружаться Maven.

...