0

这是我需要做的:在服务器(最好是 Windows)上使用Apache 的 FOP渲染 PDF。作业将来自队列,但这并不重要。

我想避免在每次需要渲染作业时预热 JVM。FOP 有一个可用于 Web 请求的参考 servlet,但我不想介绍 Tomcat。

我有非常粗略的 Java 技能(并且更愿意保持这种技能)所以,启动一个长时间运行的 Java 程序的最简单方法是什么,该程序可以监控队列并运行 FOP 作业,而不会产生启动开销比如说,一个命令行 Java 脚本?我很想用 Rhino 来做这件事,因为我对 JS 很熟悉,并且在 Rhino/JS 中已经有了很多文档处理逻辑。我绝对不想使用 Java Web 服务器。

4

1 回答 1

1

我认为您实际上只有两个选择;

  1. 一个 java “服务器”,无论是 Web 服务器还是 RPC 服务器。我们使用 thrift 与长期运行的 java 服务进行通信,该服务的唯一目的是生成 PDF。我们在启动时预加载 FOP,并为每个请求保持库“热”。Web 服务也一样好。

  2. 一个 java 守护进程,它监听你提到的队列,生成 PDF(可能是放在 tmp 文件夹中?)并返回另一个队列的完成通知和位置(这实际上是我们生成长期运行的财务报告的方式> 300 页)。

你可以使用任何你想要的语言;如果 Rhino 可以直接与 Java/FOP 通信,那么你应该没有问题。我们已经在 J​​ava 之上的各种项目中使用了 Jython 和 Scala。

于 2011-01-26T10:48:29.133 回答