从java commons-exec启动的应用程序无法在win7上访问Web,但从cmd.exe启动可以

发布于 2024-10-04 13:57:41 字数 382 浏览 7 评论 0原文

在 windows7 上运行,使用 wkhtmltopdf 从我们的网站生成 pdf 在命令提示符下工作正常。通过 commons-exec 从在 jetty 中运行的 servlet 运行完全相同的 wkhtmltopdf 命令会产生空白的 pdf。

我已经打开了我们网站上的accesslog阀门,并在win7上安装了netmon,我可以清楚地看到,从命令提示符调用时,正在生成对我们网站本身的Web请求,但根本没有生成从jetty启动的进程。

我已经在 win7 上使用事件查看器检查了事件日志,但我没有看到任何安全异常或可能解释空 pdf 的情况。它生成 pdf 的事实意味着 wkhtmltopdf 可执行文件被正确调用。

有什么想法可能导致 wkhtmltopdf 无法访问 http 吗?

Running on windows7, using wkhtmltopdf to generate a pdf from our site works fine from a command prompt. Running the exact same wkhtmltopdf command from a servlet running in jetty via commons-exec results in a blank pdf.

I've turned on the accesslog valve on our site as well as installed netmon on win7, and I can clearly see that the web request to our site itself is being generated when invoked from the command prompt, but isn't being generated at all from the jetty-launched process.

I've examined the event logs with Event Viewer on win7, but I don't see any security exceptions or such that might explain the empty pdf. The fact that it is generating a pdf implies that the wkhtmltopdf executable is being invoked correctly.

Any ideas what might be causing wkhtmltopdf to not have http access?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

渔村楼浪 2024-10-11 13:57:41

解决了这个问题,以防其他人遇到这个问题:虽然 wkhtmltopdf 可执行文件运行良好,但它是在没有任何环境变量的情况下启动的,这导致 http 请求默默失败(或者至少以我从未发现的方式失败) )。更改进程启动器以将启动进程中的所有环境变量复制到 wkhtmltopdf 进程中解决了问题。

请注意,我最终通过将 wkhtmltopdf 包装在 bat 脚本中并打印出环境变量和其他状态来解决了这个问题。必须温习我的蝙蝠脚本,但这是值得的。

Solved it, in case anyone else runs across this: Though the wkhtmltopdf executable was running fine, it was being launched with no environment variables whatsoever, and that was causing the http request to fail silently (or at least in a way that I never discovered). Changing the process launcher to copy over all the env vars from the launching process into the wkhtmltopdf process solved the problem.

Note that I finally solved this by wrapping wkhtmltopdf in a bat script and printing out env vars and other state in there. Had to brush up on my bat scripting, but it was worth it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文