Интеграция BIRT в web-приложение
Введение
В статье “Введение в BIRT” мы работали с инструментом для создания шаблонов отчетов BIRT, из него же мы эти отчеты и запускали. Но на практике, такой подход будет вряд ли приемлем для бизнеса, из-за чего возникает необходимость интеграции BIRT в существующее web-приложение.
Описание шагов для интеграции BIRT
За основу возьмем web-приложение, которое использует модель данных из прошлой статьи, и добавим в него возможность запуска отчета. Web-приложение представляет собой сервис для мониторинга мероприятий в городе. Зарегистрированные пользователи имеют возможность подписываться на тематики мероприятий и, в случае проведения мероприятия данной тематики, подписчики получат уведомления. Пользователи могут предлагать свои новости, администратор сервиса проводит модерацию и утверждает или отклоняет новости для публикации.
Добавление зависимости в Maven
Первое, что необходимо сделать для интеграция BIRT в существующий проект — это подключить необходимые библиотеки. В данном случае используется сборщик проекта Maven, следовательно в файл pom.xml необходимо подключить контейнер веб-сервисов Axis и два компонента BIRT:
Конфигурация дескриптора развертывания
После того, как мы указали необходимые зависимости, нам нужно добавить информацию по развертыванию сервлета BIRT. В файл web.xml нужно добавить следующее:
1) Задать расположение “рабочей” папки для BIRT. В этой папке будут находиться наши отчеты:
2) Установить значение флага, который определяет, будут ли доступны отчеты только из рабочей директории. По умолчанию true:
3) Задать параметр, который отвечает за настройку работы с url адресом отчета. Допустим, наш отчет имеет адрес http://host/repo/test.rptdesign. В таком случае, возможны следующие значения:
- all — поддерживаются все пути.
- domain — поддерживаются только пути, у которых host соответствует текущему домену. Сравнение происходит посимвольно, так что “127.0.0.1” и “localhost” считаются разными доменами.
- none — URL адреса не поддерживаются
4) Определить расположение конфигурационного файла для просмотрщика отчетов:
5) Определить, будет ли доступна функция печати на стороне сервера, либо же только на стороне клиента. Значение по умолчанию — ON.
6) Установить флаг, определяющий, будет ли выполнена принудительная оптимизация результата в HTML для браузера. Значение по умолчанию — true.
7) Задать имя класса, который будет генерировать имена отчетов при экспорте.
8) Задать ServletContext и HttpSession listener.
9) Зарегистрировать и сконфигурировать ViewerServlet.
10) Зарегистрировать и сконфигурировать Engine Servlet.
Подключение служебных файлов
После того, как мы закончили с конфигурацией, в проект необходимо добавить некоторые служебные файлы. Для этого, необходимо скачать два архива: webcontent.zip и programfiles.zip.
Далее, в директории /webapp нашего проекта создаем следующие папки — logs, report, scriptlib. В директории /webapp/WEB-INF создаем директорию tlds
Файлы из архивов programfiles.zip кладём следующим образом:
- birt.tld кладем в /webapp/WEB-INF/tlds
- файлы server-config.wsdd и viewer.properties кладем в /webapp/WEB-INF
Содержимое архива webcontent.zip кладем в /webapp
Добавление шаблона отчета в проект
На данном этапе, в наше web-приложение интегрированы два компонента BIRT (для обработки и отображения отчетов). Осталось лишь подложить наш шаблон отчета, который мы сделали в прошлом уроке, добавить ссылку на наш отчет и запустить проект.
Берём наш шаблон отчета и кладем его в папку /webapp/report:
Теперь мы можем поместить ссылку на наш отчет в каком-либо представлении.
Например, добавим в меню ссылку, которое будет открывать наш отчет в новой вкладке:
И самое последнее, что нужно сделать — запустить приложение. В нашем приложении используется Jetty, следовательно для запуска приложения используем команду jetty:run:
Наше приложение будет доступно по адресу https://localhost:8888/. После клика на нашей ссылке, в новой вкладке откроется наш отчет:
Музыкальный проект IvanandaJazz Компания JazzTeam отметила свое 6-летие