在Windows7上运行,使用wkhtmltopdf从我们的网站生成pdf可以在命令提示符下正常工作。从通过commons-exec在jetty中运行的servlet运行完全相同的wkhtmltopdf命令会产生一个空白的pdf。
我打开了我们站点上的accesslog阀门以及win7上安装的netmon,我可以清楚地看到,当从命令提示符调用时,我们网站本身的Web请求正在生成,但不是从码头发射过程中产生的一切。
我已经在win7上使用事件查看器检查了事件日志,但是我没有看到任何安全例外或者可能解释为空的pdf。 生成pdf的事实意味着正在正确调用wkhtmltopdf可执行文件。
任何想法可能导致wkhtmltopdf无法访问http?
答案 0 :(得分:2)
解决了它,万一其他人遇到这个问题:虽然wkhtmltopdf可执行文件运行正常但是它没有任何环境变量而被启动,这导致http请求无声地失败(或者至少以某种方式我从未发现过)。更改进程启动程序以将所有环境变量从启动过程复制到wkhtmltopdf过程解决了这个问题。
请注意,我终于通过在蝙蝠脚本中包装wkhtmltopdf并在那里打印出env vars和其他状态来解决这个问题。不得不刷我的蝙蝠脚本,但这是值得的。