【发布时间】:2020-09-02 15:03:46
【问题描述】:
我在 tomcat9 中创建了一个 servlet 并对其进行了 ajax 调用,但 python 脚本不会被执行。
我的代码:
package com.thinking.machines.myServices.servlet;
import com.thinking.machines.myServices.database.*;
import com.thinking.machines.myServices.pojo.*;
import javax.servlet.*;
import javax.servlet.http.*;
import com.google.gson.*;
import java.io.*;
public class HtmlToPdfServlet extends HttpServlet {
static String filepath = "..\\..\\..\\..\\..\\..\\cgi\\html_to_pdf.py";
public static void generatePDF(String link) {
System.out.println("hello hi");
new Thread(() -> {
try {
ProcessBuilder pb = new ProcessBuilder("python",filepath,link);
Process p = pb.start();
} catch (Exception e) {
e.printStackTrace();
}
}).start();
}
public void doPost(HttpServletRequest request, HttpServletResponse response) {
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
String link = request.getParameter("data");
generatePDF(link);
System.out.println(link);
}
}
我看到的输出是 - hello hi(在 tomcat 服务器中),但没有执行 python 脚本。 我还配置了tomcat的conf/web.xml文件。
但是当我只是简单地在没有 servlet 的情况下使用它并在命令行中使用它时,它对我来说很好。
这里是python代码:
import sys
import pdfkit
arg=sys.argv[1]
print(arg)
pdfkit.from_url(arg,'..\\result\\google.pdf')
【问题讨论】:
标签: java python servlets tomcat9 html-to-pdf