gpt4 book ai didi

java - 从 Java 执行 hgweb.cgi

转载 作者:行者123 更新时间:2023-11-30 08:00:41 33 4
gpt4 key购买 nike

我有 Jetty Web 服务器,我想从中运行 hgweb.cgi:

ProcessBuilder builder = new ProcessBuilder("/MyPath/hgweb.cgi");

然后我创建Process process = builder.start();并将输入流从请求提供给形成服务器响应的进程。但有一个问题:某种我无法理解的 python 错误

File "<stdin>", line 1, in <module>
File "mercurial/hgweb/wsgicgi.py", line 76, in launch
content = application(environ, start_response)
File "mercurial/hgweb/hgweb_mod.py", line 168, in __call__
return self.run_wsgi(req)
File "mercurial/hgweb/hgweb_mod.py", line 177, in run_wsgi
req.url = req.env['SCRIPT_NAME']
KeyError: 'SCRIPT_NAME

这在命令行中也不起作用。我尝试添加 header (SCRIPT_NAME,“”)来形成对 hgweb.cgi 的请求,但继续看到该消息。

在使用hgweb的每个示例中,人们都使用apache/lighttpd/nginx服务器来运行hgweb.cgi,我不明白为什么nodody做了我想做的事情.

如果有人可以帮助我配置 hgweb.cgi 或告诉我从 java 调用 .cgi 脚本的正确方法,我会非常高兴!

最佳答案

我认为您找不到任何示例的原因是,为每个请求从 Java 调用 Python 可执行文件并不是任何人都推荐的做法。它既缓慢又不安全。考虑通过管道与 Command Server 进行通信它重用了单个 Python 进程,并且正是为此类事情而设计的。甚至还有 Java 客户端库。

如果您确实想尝试将 Mercurial 作为独立于 Java 的进程来调用,则无需调用 .cgi(或您所得到的 wsgi)。只需直接调用提供命令行参数和标准输入的主要 Python 可执行文件即可。

关于java - 从 Java 执行 hgweb.cgi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31968653/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com