mod_gsoap 修改过程 1. 使用.Net 2003通过原有的mod_gsoap.vcproj生成*.sln 2. 使用vc726将.vcproj转换成.dsp 3. 下载apache httpd win source package 4. 解压后,将mod_gsoap的文件拷入到modules\gsoap中 5. 向apache.dsw中添加mod_gsoap.dsp 6. 修改apache中的相关项目,去掉Generate debug info 7. **根据相似的其他mod修改mod_gsoap工程,要仔细检查所有项 8. 添加依赖工程libapr, libaprutil, libhttpd 9. 修改gsoap_handler中的一个错处:C,因此要在函数开始时声明变量。 10.向BuildBin中添加所有的mod_* 12.修改os\win32\BaseAddr.ref添加 + mod_gsoap.so 0x6FFA0000 0x00010000 libhttpd.dll 0x6FF00000 0x000A0000 13.mod_deflate下载zlib到srclib\zlib并根据zlib中的工程修改mod_deflate中的zlib包含的文件,mod_deflate.dep改名字,新建一个空的mod_deflate.dep 14.下载http://sourceforge.net/nasm,根据ssl中的指示编译ssl 15.下载http://sourceforge.net/gnuwin中的bison, flex and gawk 16.修改mod_gsoap.c中的frecv + nRet = ap_get_client_block(r, pBuf, len > r->remaining ? (apr_size_t)r->remaining : len); - nRet = ap_get_client_block(r, pBuf, len > r->remaining ? r->remaining : len); 17.配置http.conf LoadModule gsoap_module modules/mod_gsoap.so
<IfModule mod_gsoap.c> <Location /soap> SetHandler gsoap-handler SOAPLibrary gsoap\calc.dll </Location> </IfModule>
18.注意:for apache2的mod_gsoap,当直接使用浏览器时,会发生404错误,并且不像for apache1的那样提示相关信息。 因此要想测试,可以直接使用程序发送POST消息。如使用下面的python程序 import httplib, urllib, mimetools, time
body = """<?xml version="1.0" encoding="UTF-8"?> <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:ns="calc"> <SOAP-ENV:Body id="_0"> <add xmlns="calc"> <a>10</a> <b>20</b> </add> </SOAP-ENV:Body> </SOAP-ENV:Envelope> """
headers = {"Content-type": "text/xml:"}
conn = httplib.HTTPConnection("WY", "8000") conn.request("POST", "/soap", body, headers) response = conn.getresponse() print response.status, response.reason print response.msg data = response.read() print data conn.close()
如果你不想自己编译,在 http://gsoapwzd.cosoft.org.cn/gsoapwzd/mod_gsoap/mod_gsoap.so http://gsoapwzd.cosoft.org.cn/gsoapwzd/mod_gsoap/mod_calc.dll http://gsoapwzd.cosoft.org.cn/gsoapwzd/mod_gsoap/add 2 httpd.conf http://gsoapwzd.cosoft.org.cn/gsoapwzd/mod_gsoap/calc.h 下载。

|