Параметры теплого запуска Apache FOP и Java (еще лучше с Rhino) - PullRequest
0 голосов
/ 05 января 2011

Вот что мне нужно сделать: рендерить PDF-файлы, используя FOP Apache на сервере (предпочтительно Windows). Задания будут поступать из очереди, но это не так важно.

Я хочу избегать разогрева JVM каждый раз, когда мне нужно выполнить работу. У FOP есть справочный сервлет, который я мог бы использовать с веб-запросами, но я не хочу представлять Tomcat.

У меня очень грубые навыки работы с Java (и я бы предпочел, чтобы это так и оставалось), поэтому, какой самый простой способ запустить долгосрочную Java-программу, которая может отслеживать очередь и запускать задания FOP, без затрат на запуск что происходит с, скажем, сценарием командной строки Java? Я хотел бы сделать это с Rhino, так как я чувствую себя комфортно с JS, и у меня уже есть много логики обработки документов в Rhino / JS. Я определенно не хочу использовать веб-сервер Java.

1 Ответ

1 голос
/ 26 января 2011

Я думаю, у вас есть только два варианта:

  1. Java-сервер, будь то веб-сервер или RPC-сервер.Мы используем Thrift для связи с давно работающим Java-сервисом, единственная цель которого - создавать PDF-файлы.Мы предварительно загружаем FOP при запуске и поддерживаем библиотеку «горячей» для каждого запроса.Веб-сервис был бы таким же хорошим.

  2. Java-демон, который прослушивает упомянутую вами очередь, генерирует PDF (помещая его в папку tmp, может быть?) И возвращает уведомлениезавершения и расположения в другой очереди (именно так мы работаем для создания долгосрочных финансовых отчетов с> 300 страницами).

Вы можете использовать любой язык, который хотите;если Rhino может напрямую общаться с Java / FOP, у вас не должно быть проблем.Мы использовали Jython и Scala для различных проектов поверх Java.

...