以下是我需要做的事情:在服务器(最好是Windows)上使用Apache's FOP渲染PDF。这些工作将来自一个队列,但这并不重要。
每次我需要渲染一份工作时,我都想避免让JVM升温。 FOP有一个我可以用于Web请求的引用servlet,但我不想介绍Tomcat。
我有非常粗略的Java技能(并且更愿意保持这种方式)所以,启动长期运行的Java程序的最简单方法是什么,该程序可以监视队列并运行FOP作业,而无需启动开销例如,命令行Java脚本会发生什么?我很想用Rhino做这件事,因为我对JS很满意,并且在Rhino / JS中已经有很多文档处理逻辑。我绝对不想使用Java Web服务器。
答案 0 :(得分:1)
我认为你真的有两种选择;
java“服务器”,无论是Web服务器还是RPC服务器。我们使用thrift与长期运行的java服务进行通信,该服务的唯一目的是生成PDF。我们在启动时预加载FOP,并为每个请求保持库“热”。网络服务也一样好。
一个java守护进程,它监听你提到的队列,生成PDF(把它放在tmp文件夹中,也许?)并在另一个队列上返回完成和位置的通知(这实际上是我们的工作方式)生成包含> 300页的长期财务报告。
你可以使用你想要的任何语言;如果Rhino可以直接与Java / FOP通信,那么你应该没有问题。我们已经将Jython和Scala用于Java之上的各种项目。