Posted on 2018-10-20 10:34
ZhouFeng 阅读(1487)
评论(0) 编辑 收藏 所属分类:
原创 、
Web开发 、
Web服务器
今天折腾一下如何在Tomcat环境下运行python脚本,查阅了一些文档,把实现的过程小结如下,当前实验环境,Tomcat8,Eclipse。python环境是Anaconda,因为之前有安装这个东东,也就没有重新安装python环境了。首先在Eclipse中创建新工程,并可以在Tomcat中运行起来,接下来才是配置cgi的步骤
1、在web工程WEB-INF目录下创建目录cgi,当然也可以是别的名字
2、修改web.xml,开启如下设置,默认情况是注释掉的
<servlet>
<servlet-name>cgi</servlet-name>
<servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
<init-param>
<param-name>clientinputTimeout</param-name>
<param-value>100</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>passShellEnvironment</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>cgiPathPrefix</param-name>
<param-value>WEB-INF/cgi</param-value>
</init-param>
<init-param>
<param-name>executable</param-name>
<param-value>D:/Anaconda3/python.exe</param-value>
</init-param>
<load-on-startup>5</load-on-startup>
</servlet>
注意修改python的路径
cgiPathPrefix: 与Server能够访问的脚本目录有关,与之前创建的目录相对应
3、开启cgi的mapping映射,修改web.xml,开启如下设置
<servlet-mapping>
<servlet-name>cgi</servlet-name>
<url-pattern>/cgi-bin/*</url-pattern>
</servlet-mapping>
访问路径可以修改为自定义字符
4、修改content.xml文件,在Context中添加privileged属性
<Context privileged="true">
5、在工程cgi目录写python文件,如hello.py
print('Content-type: text/plain\n\n')
print('Hello python')
输出text/plain说明这是一个普通文本,一定注意之后要有两个换行(小心坑啦)!!!
6、运行工程并测试
http://localhost:8080/prj/cgi-bin/hello.py
所见结果,通过这种方法可以在Tomcat环境下运行python脚本了,如果是已经用python脚本做好了服务的话,还是可以考虑通过服务调用的方式与Tomcat工程进行整合,在此记录一下