Delphi开发的WebService如何和Tomcat集成

 随着B/S程序得到越来越广的应用,Delphi由开发C/S程序的主战场逐步转移到以开发WebService后台服务程序为主。由于我们前台通常用JSP作为脚本语言,因此Tomcat作为简单的Web服务器使用也比较广泛。
  Delphi开发的WebService主要有4种发布形式:
  1ISAPI/NSAPIDLL,一般必须集成与IIS服务器,由于IIS的漏洞太多,我们一般不使用。
  2ApacheDSO模块,必须要Apache支持,同时集成Tomcat,这样配置较为复杂,但速度快,适合大型项目使用。
  3WinCGI,这个方式我们一般不使用。
  4CGI通用网关接口,支持大部分Web服务器,效率不高,适合小型软件使用,我们只能以这种方式才能和Tomcat简单集成。
  Tomcat支持Delphi开发的CGI的步骤是:
  1. servlets-cgi.renametojar (在CATALINA_HOME/server/lib/目录下)改名为servlets-cgi.jar。处理CGIservlet应该位于TomcatCLASSPATH下。
  2. TomcatCATALINA_BASE/conf/web.xml 文件中,把关于<servlet-name> CGI的那段的注释去掉
  <!--
    <servlet>
      <servlet-name>cgi</servlet-name>
      <servlet-class>org.apache.catalina.servlets.CGIServlet</servlet-class>
        <init-param>
          <param-name>debug</param-name>
          <param-value>6</param-value>
        </init-param>
        <init-param>
          <param-name>cgiPathPrefix</param-name>
          <param-value>WEB-INF/cgi</param-value>
        </init-param>
      <load-on-startup>5</load-on-startup>
    </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>6</param-value>
        </init-param>
        <init-param>
          <param-name>executable</param-name>
          <param-value></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>
      <load-on-startup>5</load-on-startup>
    </servlet>
  这里注意,因为Tomcat默认是只支持Perl脚本的CGI,要想支持exe型的CGI,必须将executable设置为空,但这样也只能执行第一个页面,如果要得到WDSL的页面,必须要设置passShellEnvironmenttrue,这个参数只有Tomcat5.5支持,如果想要Tomcat5.0支持Delphi开发的CGI型的WebService的话,必须要将Tomcat5.5servlets-cgi.jar复制到Tomcat5.0下的CLASSPATH环境变量的目录下,

 

  3. 同样,在TomcatCATALINA_BASE/conf/web.xml文件中,把关于对CGI进行映射的那段的注释去掉。注意,这段内容指定了HTML链接到CGI脚本的访问方式。
  <!--
    <servlet-mapping>
      <servlet-name>cgi</servlet-name>
      <url-pattern>/cgi-bin/*</url-pattern>
    </servlet-mapping>
  -->
改为
  <servlet-mapping>
    <servlet-name>cgi</servlet-name>
    <url-pattern>/cgi-bin/*</url-pattern>
  </servlet-mapping>

 

  4. 你可以把CGI脚本放置在WEB-INF/cgi 目录下(注意,WEB-INF是一个安全的地方,你可以把一些不想被用户看见或基于安全考虑不想暴露的文件放在此处),或者你也可以把CGI脚本放置在context下的其他目录下,并为CGI Servlet调整cgiPathPrefix初始化参数。这就指定的CGI Servlet的实际位置,且不能与上一步指定的URL重名。
  5. 重新启动Tomcat,你的WebServiceI就可以运行了。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值