Tauruser

          JSF will hibernate in spring.

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            24 隨筆 :: 2 文章 :: 19 評論 :: 0 Trackbacks
           

          摘要:

           在Sas IntrNet Module很多功能都是需要用到CGICommon Gateway Interface)進行工作。在使用CGI進行工作時候,我們首先要進行CGI服務(wù)器的配置。一般情況下可以直接使用Apache來架設(shè)CGI服務(wù)器。由于我們后期的一些應(yīng)用可能是在JEE平臺上進行開發(fā),所以在一個可以運行Web ContainerServer上架設(shè)CGI服務(wù)是有必要的。本文將介紹如何在Tomcat下配置CGI服務(wù)。

          配置步驟:

          要為Tomcat配置CGI服務(wù)主要有下面幾個步驟:

          1.       servlets-cgi.renametojar (在%CATALINA_HOME%/server/lib/目錄下)改名為servlets-cgi.jar。

          2.       Tomcat%CATALINA_BASE%/conf/web.xml 文件中,把關(guān)于<servlet-name> CGI的那段的注釋去掉。內(nèi)容樣式如下:

          <servlet>

               <servlet-name>cgi</servlet-name>

               <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

               <init-param>

                 <param-name>debug</param-name>

                 <param-value>0</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>C:/Perl/bin/Perl.exe</param-value>

               </init-param>

               <load-on-startup>5</load-on-startup>

          </servlet>

          其中參數(shù)executable需要自已添加進去,它的值就是我們用來解釋CGI腳本的程序。一般情況下這里會配置為Perl。"C:/Perl/bin/"Perl的安裝目錄。

          3.       Tomcat%CATALINA_BASE%/conf/web.xml文件中,把關(guān)于對CGI進行映射的那段的注釋去掉。內(nèi)容樣式如下:

          <servlet-mapping>

              <servlet-name>cgi</servlet-name>

          <url-pattern>/cgi-bin/*</url-pattern>
          </servlet-mapping>

          其中url-pattern就是將來我們訪問CGI腳本的url地址模式。

            完成上面三個步驟后,我們的Tomcat服務(wù)器就具有了運行CGI腳本的能力了。

          測試CGI服務(wù)。

            為了測試CGI服務(wù),需要新建一個Web Project。并在WEB-INF目錄下新建一個名為"cgi"的目錄,CGI腳本將放置在這個目錄下。這里提供了一個用于測試CGI腳本printenv.pl|^printenv.pl。Deloy the web project。啟動Tomcat后,我們就可以通過http://localhost:8080/projectName/cgi-bin/printenv.pl訪問了。

            如果訪問成功,頁面將顯示如下的類似信息。

          AUTH_TYPE=""
          CONTENT_LENGTH=""
          CONTENT_TYPE=""
          GATEWAY_INTERFACE="CGI/1.1"
          HTTP_ACCEPT="image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/x-silverlight, */*"
          HTTP_ACCEPT_ENCODING="gzip, deflate"
          HTTP_ACCEPT_LANGUAGE="zh-cn"
          HTTP_CONNECTION="Keep-Alive"
          HTTP_HOST="localhost:8080"
          HTTP_USER_AGENT="Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"
          PATH_INFO=""
          QUERY_STRING=""
          REMOTE_ADDR="127.0.0.1"
          REMOTE_HOST="127.0.0.1"
          REMOTE_IDENT=""
          REMOTE_USER=""
          REQUEST_METHOD="GET"
          REQUEST_URI="/sasIntrNet/cgi-bin/printenv.pl"
          SCRIPT_NAME="/sasIntrNet/cgi-bin"printenv.pl"
          SERVER_NAME="localhost"
          SERVER_PORT="8080"
          SERVER_PROTOCOL="HTTP/1.1"
          SERVER_SOFTWARE="TOMCAT"
          X_TOMCAT_SCRIPT_PATH="D:"Program Files"apache-tomcat-5.5.17"webapps"sasIntrNet"WEB-INF"cgi"printenv.pl"

            這個腳本主要打印當前CGI的一些環(huán)境變量出來。

          參考文檔

          1、《Apache Tomcat 5.5 Servlet/JSP 容器 怎樣使用CGIhttp://tomcat.jaxmao.org/cgi-howto.html

          2、《Tomcat配置技巧Top 10》 http://www.pconline.com.cn/pcedu/empolder/wz/webserver/0502/549840_3.html

          補充說明:

          對于上文的補充說明:

           當我們要在TomcatCGI服務(wù)上跑SAS IntrNet服務(wù)的時候,需要對上文的配置作一定的修改。首先Sas IntrNetDispatcher模塊用來接收Browers請求的broke.exe文件只是一個普通的Windows Win32可執(zhí)行文件,并不是Perl腳本。(可以在Console環(huán)境下直接運行broker.exe文件。)基于上面的認識所以Servletexecutable參數(shù)不能配置使用Perl來運行,應(yīng)該改成為如下命令。

          <init-param>

             <param-name>executable</param-name>

             <param-value>cmd /c</param-value>

          </init-param>

          其中,"cmd /c"正是windows的系統(tǒng)命令,調(diào)用console。具體參數(shù)/c,使用/?開關(guān)進行查看。
           此外,Sas IntrNet應(yīng)用還需要系統(tǒng)的環(huán)境變量等信息,所以需要再多加配置一個參數(shù)。 

          <init-param>

           <param-name>passShellEnvironment</param-name>

           <param-value>true</param-value>

          </init-param>

           完整的servlet配置如下

          <servlet>

           <servlet-name>cgi</servlet-name>

           <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>

           <init-param>

              <param-name>debug</param-name>

              <param-value>0</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>cmd /c</param-value>

           </init-param>

           <init-param>

              <param-name>passShellEnvironment</param-name>

              <param-value>true</param-value>

            </init-param>

           <load-on-startup>5</load-on-startup>

          </servlet>

          posted on 2007-09-06 10:40 Tauruser 閱讀(7991) 評論(3)  編輯  收藏 所屬分類: SAS

          評論

          # re: 為Tomcat配置CGI服務(wù) 2007-09-26 15:39 hqhony
          按照你的描述,我現(xiàn)在出現(xiàn)這樣一個問題:不能運行exe類型的cgi程序,而總是提示下載,請問是什么原因造成的,該如何解決。
          e-mail:hqhony@msn.com  回復  更多評論
            

          # re: 為Tomcat配置CGI服務(wù) 2009-10-14 10:08 trent
          如果配置exe,這段配置了嗎
          <init-param>

             <param-name>executable</param-name>

             <param-value>cmd /c</param-value>

          </init-param>
          如果是運行perl
          那么<param-value>應(yīng)設(shè)置perl.exe全路徑  回復  更多評論
            

          # re: 為Tomcat配置CGI服務(wù) 2009-11-12 10:48 227
          linux下如何配置?  回復  更多評論
            


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導航:
           
          主站蜘蛛池模板: 嵊泗县| 高唐县| 望都县| 泾源县| 周口市| 康乐县| 高邮市| 贞丰县| 弥勒县| 个旧市| 泸州市| 木里| 芷江| 呼和浩特市| 河源市| 泸溪县| 崇义县| 乌海市| 林芝县| 龙川县| 卓资县| 武鸣县| 英超| 五华县| 斗六市| 潜江市| 陆良县| 四平市| 乐至县| 长治市| 瑞昌市| 右玉县| 枣阳市| 仁怀市| 吴旗县| 宝鸡市| 扎囊县| 伊宁市| 南华县| 垫江县| 闽清县|