我用DELPHI6写的CGI在apache下正常使用,但写soap的CGI却不能用,是不是要设置?(100分)

阿帕奇服务器没有设置好!
 
linux下需要设置详细说明请查Kylix Demo/webserver/readme
windows下不需要设置。
请检查调用http://127.0.0.1/cgi-bin/test1.cgi/soap/itest
 
1、首先设置好apache的cgi-bin目录的权限,让你的cgi程序能正常执行。
2、在apache中,如果你是用linux操作系统,请在httpd的配置文件(httpd.conf)
中利用SetEnv命令设置如下环境变量:
   SetEnv LD_LIBRARY_PATH <你的kylix安装路径>/bin
SetEnv HOME <包含.kylix的主目录> # 此处一般可设为你安装kylix时
                       # 所用的用户的主目录,比如
                       # 以root用户安装,可设为
                       # /root;如果是用普通用户,比如
                       # 是mycount,则系统默认的该用户主
                       # 目录为/home/mycount,那么设成
                       # /home/mycount即可。
   SetEnv LANG en_US
3、在客户端,不管用Delphi6(必须安装Delphi6的升级包)还是kylix2,均可用SoapConnection
组件进行连接测试,请指定SoapConnection的url属性为http://kylix服务器应用程序所在ip/cgi文件路径/
kylix所写的cgi服务器程序名称/soap/你在Soap Server数据模块定义的Class名称(比如你用TEST做为类名称,则为
ITEST,用DEMO做为类名称,则为IDEMO,在模块名称前加个”I“),举个完整的例子,我在ip地址为192.172.0.1
上有kylix写了一个CGISoapSERer,名为CGISoapServer,我的Apache的cgi执行的路径为
cgi-bin,Soap Server的数据模块class名称为TEST,则客户端的soap Connection的
url属性可设为http://192.172.0.1/cgi-bin/CGISoapServer/soap/ITEST,此时将其
连接属性设为true
4、在客户程序相应的窗体上放一TClientDataSet组件,设其RemoteServer属性为SoapConnection的名称,
然后在provider属性列表中就可将CGISOAPSERVER中的export中的Provider名称选中,将ClientDataSet
组件激活,就可以了[:)]。(注意,如果你没有安装Delphi6的升级包,会出现'invilidated pakage data'的
错误,此时请下载delphi6的升级包[^])。
5、windows下的cgisoapserver我没试验过,[:(]我想只要把SoapConnection中的cgisoapServer地址写对了就可以
了。注意Delphi中帮助有误,url的soap后面要向上面举例的一样加上你的模块名。
祝你成功!                         
 
多人接受答案了。
 

Similar threads

顶部