На Wildfly 10.0
развернуто EAR
приложение, в котором генерируется PDF документ. Генерация происходит во время звонка в службу REST
и использует Apache FOP 2.3
. Когда служба сначала вызывается после перезапуска / повторного развертывания, генерация приложения выполняется в течение почти 6 секунд, а последующие - через 0,7 секунды.
Схема создания документа:
- Генерация XMLс данными и XSLT с дизайном.
- Создать FopFactory -> получить RenderFactory из FopFactory -> получить новый FOUserAgent для FopFactory.
- Создать fop из FopFactory (на основе MIME_PDF, FOUserAgent и ByteArrayOutputSt).
- Создать TransformerFactory -> получить новый Transformer of TransformerFactory с помощью XSLT.
- Получить основанный на xml.transform.Result fop.defaultHandler и выполнить преобразование XML в PDF.
- Выводится результирующий байтовый массивв ByteArrayInputStream.
Как можно ускорить первое поколение PDF-файлов? В журналах при первом запуске генерируется около 10 000 строк при инициализации компонентов Apache FOP.