mod_gsoap(gsoap与Apache服务器的集成)

利用gsoap很容易的产生出服务端与客户端的代码,下面详细描述将服务端的代码集成到apache的步骤。

 

本文采用的工具是vs2012,示例代码来源于:gsoap-2.8\gsoap\samples\calc

$ soapcpp2 -c calc.h

通过上面的命令就能产生客户端与服务端的代码(用不到*.xml文件可以删掉,如下图所示)。

 mod_gsoap(gsoap与Apache服务器的集成)_第1张图片

说明:

1.gsoap的标准函数stdsoap2.h和stdsoap2.c需要额外从gsoap的根目录下拷贝;

2.soapClientLib.c和soapserverLib.c虽然用不到,建议保留着。

 

1、用vs2012导入gsoap-2.8\gsoap\mod_gsoap\mod_gsoap-0.6\apache_20\mod_gsoap工程,编译出mod_gsoap.so模块。

如下图所示:

 mod_gsoap(gsoap与Apache服务器的集成)_第2张图片

 

2、在mod_gsoap模块所需的配置文件(本文是mod_gsoap.conf)末尾添加如下设置

LoadModule gsoap_module modules/mod_gsoap.so

<IfModule mod_gsoap.c>

 <Location /soap>

  SetHandler gsoap_handler

  SOAPLibrary D://Apache24//Win32_Debug//ex_modules//gsoapDLL.so

  Order allow,deny

  Allow from all

 </Location>

</IfModule>

3、在上面的第二步中,配置参数SOAPLibrary 用到了gsoapDLL.so,这一步的目的就是编译该动态库。

 mod_gsoap(gsoap与Apache服务器的集成)_第3张图片

 

这一步中务必保证apache_init_soap_interface为导出函数,只有这样在mod_gsoap.so模块中才能调用。其他的五个用户自定义函数(ns__add、ns__sub、ns__mul、ns__div、ns__pow)无需为导出函数。

4、建立客户端工程发送请求

 mod_gsoap(gsoap与Apache服务器的集成)_第4张图片

 

说明:

1.将calc.wsdl文件放到gsoapDLL.so所在目录下,并将其改名为gsoapDLL.wsdl。这样通过浏览器访问http://localhost/soap?wsdl时就能返回到浏览器上。

2.本文的word文档详见:http://download.csdn.net/detail/sszgg2006/8899077

 

本方案主要参考gsoap官网自带的Demo,位于gsoap-2.8\gsoap\mod_gsoap\mod_gsoap-0.6\apache_20\README.txt.

 

你可能感兴趣的:(gsoap,mod-gsoap,apache模块开发)