Posted on 2018-10-20 10:34
ZhouFeng 閱讀(1520)
評論(0) 編輯 收藏 所屬分類:
原創(chuàng) 、
Web開發(fā) 、
Web服務(wù)器
今天折騰一下如何在Tomcat環(huán)境下運(yùn)行python腳本,查閱了一些文檔,把實(shí)現(xiàn)的過程小結(jié)如下,當(dāng)前實(shí)驗(yàn)環(huán)境,Tomcat8,Eclipse。python環(huán)境是Anaconda,因?yàn)橹坝邪惭b這個東東,也就沒有重新安裝python環(huán)境了。首先在Eclipse中創(chuàng)建新工程,并可以在Tomcat中運(yùn)行起來,接下來才是配置cgi的步驟
1、在web工程WEB-INF目錄下創(chuàng)建目錄cgi,當(dāng)然也可以是別的名字
2、修改web.xml,開啟如下設(shè)置,默認(rèn)情況是注釋掉的
<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能夠訪問的腳本目錄有關(guān),與之前創(chuàng)建的目錄相對應(yīng)
3、開啟cgi的mapping映射,修改web.xml,開啟如下設(shè)置
<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、運(yùn)行工程并測試
http://localhost:8080/prj/cgi-bin/hello.py
所見結(jié)果,通過這種方法可以在Tomcat環(huán)境下運(yùn)行python腳本了,如果是已經(jīng)用python腳本做好了服務(wù)的話,還是可以考慮通過服務(wù)調(diào)用的方式與Tomcat工程進(jìn)行整合,在此記錄一下