欢迎来到天天文库
浏览记录
ID:37769156
大小:372.39 KB
页数:9页
时间:2019-05-30
《数据读取服务基于gsoap的服务发布》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、数据读取服务基于gsoap的服务发布一、主要流程1)制作服务头文件2)使用gsoap生成相应文件3)建立工程与编译4)测试一、制作服务头文件头文件制作需要根据服务的功能来制作。由自己书写,比如要传入一个文件名,返回一个读取的数据文件数据块。//gsoapnsservicename:ImageServer//gsoapnsservicenamespace:http://localhost/ImageServer.wsdl//gsoapnsservicelocation:http://ImageServer//gsoapnsserviceexecutable:ImageSer
2、ver.cgi//gsoapnsserviceencoding:encoded//gsoapnsschemanamespace:urn:ImageServerstructxsd__base64Binary{unsignedchar*__ptr;int__size;};intns__ImageServer(char*fileName,structxsd__base64Binary&ret);说明:上述每一行都加上。//gsoapnsservicename:ImageServer指定服务名称//gsoapnsservicenamespace:http://localhost/
3、ImageServer.wsdl发布地址//gsoapnsschemanamespace:urn:ImageServer架构名称这些内容主要用于生成WDSL文件,相应的内容可能还会有变最主要的内容是structxsd__base64Binary{unsignedchar*__ptr;int__size;};intns__ImageServer(char*fileName,structxsd__base64Binary&ret);其中xsd_base64Binary定义了一个返回结构。注意:因为gsoap只允许一个返回值,因此,多返回值需要用到结构返回。文件制作完成则保存为
4、imageserver.h二、使用gsoap生成相应的文件相应的作法是在下载的gsoap目录下新建一个目录。将soapcpp2.exe拷入。此文件可以从bin中找到目录中只有两个文件即Soapcpp2.exeImagewerver.h进入命令行方法,进入当前目录运行soapcpp2.exeimageserver.h回车当imagerserver.h没有错误时,将生成一系列文件命令行将生成如此信息。在此目录下,将生成以下文件三、建立工程与编译1、建立服务器端工程打开VC++建立一个命令行工程。将相应.h和.cpp文件加入注意需要将gsoap目录下的stdsoap2.hcpp
5、文件加入到目录下。生成的工程文件列表如图其中T3DPD_FileDBMapping文件不是自动生成的,此处为后来的读取服务所用。生成的文件中并不存在ImgServer.cpp文件使用自己增加,完成如下:#include"ImageServer.nsmap"#include"FreeImage.h"#include"T3DPD_FileDBMapping.h"/**Genericimageloader@paramlpszPathNamePointertothefullfilename@paramflagOptionalloadflagconstant@returnRetur
6、nstheloadeddibifsuccessful,returnsNULLotherwise*/FIBITMAP*GenericLoader(constchar*lpszPathName,intflag){FREE_IMAGE_FORMATfif=FIF_UNKNOWN;fif=FreeImage_GetFileType(lpszPathName,0);if(fif==FIF_UNKNOWN){//nosignature?//trytoguessthefileformatfromthefileextensionfif=FreeImage_GetFIFFromFilena
7、me(lpszPathName);}//checkthatthepluginhasreadingcapabilities...if((fif!=FIF_UNKNOWN)&&FreeImage_FIFSupportsReading(fif)){//ok,let'sloadthefileFIBITMAP*dib=FreeImage_Load(fif,lpszPathName,flag);//unlessabadfileformat,wearedone!returndib;}returnNULL;}////server端的实现函数与
此文档下载收益归作者所有