从Java启动python Http服务器



我试图通过我的java代码启动一个用python编写的Http服务器。最初它似乎工作得很好,但在8个请求后它再次关闭。我做错了什么?服务器是这样启动的:

ProcessBuilder builder = new ProcessBuilder("python", "src\main\java\python\HttpHandler.py");
Process p = builder.start();
在python代码中,服务器是这样的:
class HttpHandler(BaseHTTPRequestHandler):
def do_GET(self):
#handle get request
def do_POST(self):
#handle post request
with HTTPServer(('', 8000), HttpHandler) as server:
server.serve_forever()

从注释来看,问题是由于服务器进程写入其标准输出或标准错误流,而Java代码没有从这些流中读取引起的。最终,缓冲区被填满,服务器进程阻塞,因为它无法向缓冲区写入数据。重写http日志功能修复了这个问题。

最新更新