想通过请求触发部署在tomcat上的非java应用程序,需要用到Common Gateway Interface(CGI)。Tomcat提供了Servlet CGI支持。
修改web.xml
web.xml配置文件中默认注释了CGIServlet,只需要打开注释即可。修改apache-tomcat-x.x.xx/conf/web.xml文件可以影响服务器上所有的部署应用。另外有几个配置需要注意,
cgiPathPrefix:部属应用中,cgi脚本的位置。tomcat会在所有应用的该目录啥寻找。
executable:CGI脚本的执行程序。
passShellEnvironment:shell的环境变量。
URL pattern:应用程序实际的webroot + /cgi-bin/*
1
2 cgi
3 org.apache.catalina.servlets.CGIServlet
4
5 cgiPathPrefix
6 WEB-INF/cgi
7
8
9 executable
10 C:\Anaconda3\python.exe
11
12
13 passShellEnvironment
14 true
15
16 5
17
18
19
20 cgi
21 /cgi-bin/*
22
修改context.xml
修改apache-tomcat-x.x.xx/conf/context.xml文件会影响所有服务器上部署的应用。
将python脚本部署在web应用
创建hello.py,将其放在web应用test工程,“WEB-INF/cgi”目录下。
from os import *
from cgi import *
print(‘Hello‘)
在浏览器中访问程序
19-Dec-2019 14:39:55.232 INFO [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8109"]19-Dec-2019 14:39:55.249 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 15210ms19-Dec-2019 14:40:04.408 INFO [http-nio-8180-exec-2] org.apache.catalina.servlets.CGIServlet$CGIRunner.run Bad header line [Hello]
原文:https://www.cnblogs.com/dylanw/p/12067839.html