Потребуются:
- установленный APEX (4.2.6);
- установленный GlassFish (4.1), каталог установки в инструкции обозначен как GLASSFISH_ROOT;
- JasperReports Library (5.6.0), далее JRL;
- JasperReports Integration (2.1.0), далее JRI.
Установка и настройка:
- Распаковать JRI в какой-либо пустой каталог (далее $JRI_ROOT).
- Переписать файлы *.jar из папки $JRI_ROOT/lib в каталог $GLASSFISH_ROOT/glassfish/domains/domain1/lib:
cp $JRI_ROOT/lib/*.jar $GLASSFISH_ROOT/glassfish/domains/domain1/lib
- Извлечь из веб-приложения JRI файл web.xml для указания каталога, в котором будут расположены каталог конфигурационных файлов, каталог отчётов, каталог файлов протокола работы приложения:
cd $JRI_ROOT java -jar bin/truezip.jar cp webapp/JasperReportsIntegration.war/WEB-INF/web.xml web.xml
- Изменить в файле web.xml параметр oc.jasper.config.home (тег param-value):
oc.jasper.config.home /path/to/jasperreports/config/dir
Каталог в настройке (далее $JRI_CONF_HOME) должен давать права на чтение и запись пользователю ОС, под которым запускается GlassFish. - Обновить файл web.xml в архиве веб-приложения:
cd $JRI_ROOT java -jar bin/truezip.jar cp web.xml webapp/JasperReportsIntegration.war/WEB-INF/web.xml
- Создать каталог $JRI_CONF_HOME, если он ещё не создан, настроить права.
- Переписать в этот каталог $JRI_CONF_HOME папки $JRI_ROOT/{conf,logs,reports}.
- Зайти в веб-консоль GlassFish и установить приложение: Applications→Deploy. Выбрать архив с обновлённым web.xml.
Context Root=/jri
- Создать JDBC Connection Pool с произвольным именем (далее $POOL_NAME). JDBC→JDBC Connection Pools→New:
Resource Type: javax.sql.DataSource Datasource Classname: oracle.jdbc.pool.OracleDataSource Properties→User: DB_USER Properties→Password: db_password Properties→URL: jdbc:oracle:thin:@your.db.host:1521:oracle_sid
- Проверить пул, выбрав его и нажав Ping.
- Создать JDBC Resource, с которым будет работать приложение. JDBC→JDBC Resource→New:
JNDI Name: Строка из букв и чисел с префиксом, отделённым косой чертой (например, jdbc/default, jdbc/mydbuser1) Pool Name: $POOL_NAME
- В файле $JRI_CONF_HOME/conf/application.properties настроить JNDI-префикс и подключения:
... jndiPrefix=jdbc/ ... [datasource:default] type=jndi name=default # Для ресурса JNDI убирается префикс и указывается оставшаяся строка
- Распаковать JasperReports Library в какой-либо каталог (далее $JRL_ROOT);
- Остановить домен GlassFish в консоли:
asadmin stop-domain domain1
- Обновить библиотеку JasperReports в составе JRI. Для этого перейти в $GLASSFISH_ROOT/glassfish/domains/domain1/applications/JasperReportsIntegration/WEB-INF/lib и выполнить для удаления старой библиотеки:
chmod u+x _jasper-reports-delete-libs-5.1.0.sh ./_jasper-reports-delete-libs-5.1.0.sh
- Переписать в $GLASSFISH_ROOT/glassfish/domains/domain1/applications/JasperReportsIntegration/WEB-INF/lib все файлы из каталога $JRL_ROOT/lib и файл $JRL_ROOT/dist/jasperreports-5.6.0.jar.
cp $JRL_ROOT/lib/* $JRL_ROOT/dist/jasperreports-5.6.0.jar $GLASSFISH_ROOT/glassfish/domains/domain1/applications/JasperReportsIntegration/WEB-INF/lib
- Запустить домен GlassFish в консоли:
asadmin start-domain domain1
- Выполнить скрипт $JRI_ROOT/sql/sys_install.sql. Потребуется указать схему БД, в которой будет размещаться API для формирования отчётов из PL/SQL.
- Выполнить скрипт $JRI_ROOT/sql/sys_install_acl.sql. Потребуется указать схему БД, в которой будет размещаться API для формирования отчётов из PL/SQL.
- Выполнить скрипт $JRI_ROOT/sql/user_install.sql от имени пользователя, в схеме которого будет размещаться API для формирования отчётов из PL/SQL.
- Для проверки работоспособности веб-приложения открыть http://<сервер с GlassFish>:<настроенный для приложений порт>/
- Для проверки обращений и примера использования JRI из APEX установить приложение из $JRI_ROOT/apex.
Как решал проблему с кирилицей в шрифтах при рендере в PDF ?
ОтветитьУдалитьПодскажите как такую же интеграцию осуществить с TOM CAT
ОтветитьУдалить