[1].gSOAP简介
添加时间:2013-6-13 点击量:
1 gSOAP 简介
gSOAP对象基于编译器技巧为C/C++供给主动的SOAP和XML数据绑定. 该对象应用主动生成代码以及进步前辈的映射办法,简化了基于C/C++的SOAP/XML Web service和XML应用法度的开辟。。大多半Web services对象采取以WSDL/SOAP为中间的概念,并且供给一组API,应用这些API必须应用响应的类库来处理惩罚特定XML数据布局。这强迫用 户去适应当法度逻辑才干应用这些类库,因为用户在应用该特定厂商的API时必须编写代码去填充XML和抽取XML数据。这往往导致一个脆弱的解决规划,几 乎没稀有据一致性、类型安然和XML验证的包管。与其他对象不合的是,gSOAP应用编译器技巧为用户隐蔽了 WSDL、SOAP、特定XML的实现细节,同时主动供给XML有效性验证、内存经管和类型安然序列化,从而供给透明的解决规划。gSOAP对象可将原有 的数据类型和用户自定义的数据类型映射成等价的XML数据类型,反之亦然。是以,经由过程一个简单的API获得了完美的SOAP互操纵性,从而可应用用户从 WSDL/SOAP/XML的细节中摆脱出来,集中精力处理惩罚应用法度逻辑。 gSOAP对象支撑传统的C/C++代码(以及留有C接口的其他编程说话)、嵌入式体系、那些和其他SOAP法度共享策画资料和信息的及时SOAP/XML应用法度之间的集成,可以跨平台,实用不合的说话景象和穿透防火墙。 gSOAP对象经常应用C/C++实现XML数据绑定。这意味着法度本地数据布局可被主动地用XML编码,而不须要额外去编写转换代码。该对象还为了XML数据绑定生成XML模式,所以外部法度可以基于该模式应用XML数据。
1.1 快速入门
应用gSOAP对象构建Web services应用法度或实现主动化XML数据绑定,你须要具备如下前提:
- 从http://www.genivia.com/Products/downloads.htmlgSOAP软件包。(选择标准版)
- 一个C或者C++的编译器.
- 如想支撑SSL(HTTPS)和紧缩,你还须要安装OpenSSL、Zlib库.这些库实用于大多半平台,同时凡是也是已经安装好的.
gSOAP是自力的软件,不须要安装第三方软件(除非你想应用OpenSSL或者你想从头构建soapcpp2对象,见下文). 从SourceForge获取的gSOAP包在gsoap/bin目次下有预构建的对象:(注:SourceForget是开源软件开辟者进行开辟经管的集中式场合,也是全球最大开源软件开辟平台和仓库):
- wsdl2h :WSDL/模式导入和数据映射绑定对象。(注:该对象将wsdl转换为开辟用的.h文件).
- soapcpp2 :存根/框架编译器和代码生成器。(注:该对象根据.h文件主动生成项目组C/CPP说话代码).
这两个法度支撑Windows、Linux和Mac OS 平台,详情参考README文件。.尽管gSOAP为不合平台筹办了二进制格局的对象,但他们生成的代码是等价的。这意味着生成的源代码可以移植到其他平台并进行本地化编译. 若是你没有该对象或者你想从头构建,你须要:
- 一个C编译器和Bison(或Yacc)来构建soapcpp2。(注Bison和Yacc也是一种编译器)
- 一个C编译器和Flex(或Lex)来构建soapcpp2。
- 一个C++编译器来构建wsdl2h。
Bison和Flex是推荐的。两者与gSOAP基于雷同的开源标准公布的。
- ison 可从此处获得: http://www.gnu.org/software/bison
- Flex 可从此处获得: http://flex.sourceforge.net
gSOAP引擎可以被构建成libgsoap.a和libgsoap++.a库,后者支撑SSL。参照README.txt的指导可以看到如何经由过程 gSOAP包里的autoconf和automake构建与平台无关的库。或者,你将引擎的源代码stdsoap2.c(或stdsoap2.cpp)直 接编译并链接进你们里。(注:申明gSOAP供给两种应用体式格式 ,一种编译成动态链接库,或者直接将源代码编译进)gSOAP包中,在samples目次下有很多例子。履行make号令可以构建这些例子法度。这些例子同时也是用来显现gSOAP不合特点的。比如,在 samples/mtom-streaming中,一个流式的MTOM附件办事端和客户端法度显现高效的文件传输;在samples /webservice中,SSL-secure收集办事端显现可认为Web流览器和Web办事调用生成不合的内容。诸如此类,还有很多。
1.2 快速开端:开辟一个 Web Service 客户端应用法度
经由过程高等XML模式解析器和代码生成器可实现XML数据绑定,这大大削减了构建Web Service法度的难度。wsdl2h对象导入一个或多个WSDL和XML模式可以生成C/C++头文件,该文件定义了Web Service操纵以及C/C++数据类型。gsoapcpp2然手按照该头文件生成XML序列化的数据类型、客户端框架代码 (soapClient.cpp)和办事端框架代码(soapServer.cpp)。gSOAP编译器也可以生成WSDL定义文件,用来从头实现一个办事。这个闭环可以使Web services开辟基于WSDL文件或者基于C/C++头文件中的一系列选项,不须要用户去解析Web办事细节。你只须要遵守一些步调履行号令行或Makefile(应用MSVC++ IDE的话参照sample目次下的MSVC++例子)。例如,为了生成策画器Web应用代码,我们经由过程号令行履行wsdl2h对象,从URL上的 WSDL文件生成头文件,这里应用-o指定输出文件名:
> wsdl2h -o calc.h http://www.genivia.com/calc.wsdl
彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》
1 gSOAP 简介
gSOAP对象基于编译器技巧为C/C++供给主动的SOAP和XML数据绑定. 该对象应用主动生成代码以及进步前辈的映射办法,简化了基于C/C++的SOAP/XML Web service和XML应用法度的开辟。。大多半Web services对象采取以WSDL/SOAP为中间的概念,并且供给一组API,应用这些API必须应用响应的类库来处理惩罚特定XML数据布局。这强迫用 户去适应当法度逻辑才干应用这些类库,因为用户在应用该特定厂商的API时必须编写代码去填充XML和抽取XML数据。这往往导致一个脆弱的解决规划,几 乎没稀有据一致性、类型安然和XML验证的包管。与其他对象不合的是,gSOAP应用编译器技巧为用户隐蔽了 WSDL、SOAP、特定XML的实现细节,同时主动供给XML有效性验证、内存经管和类型安然序列化,从而供给透明的解决规划。gSOAP对象可将原有 的数据类型和用户自定义的数据类型映射成等价的XML数据类型,反之亦然。是以,经由过程一个简单的API获得了完美的SOAP互操纵性,从而可应用用户从 WSDL/SOAP/XML的细节中摆脱出来,集中精力处理惩罚应用法度逻辑。 gSOAP对象支撑传统的C/C++代码(以及留有C接口的其他编程说话)、嵌入式体系、那些和其他SOAP法度共享策画资料和信息的及时SOAP/XML应用法度之间的集成,可以跨平台,实用不合的说话景象和穿透防火墙。 gSOAP对象经常应用C/C++实现XML数据绑定。这意味着法度本地数据布局可被主动地用XML编码,而不须要额外去编写转换代码。该对象还为了XML数据绑定生成XML模式,所以外部法度可以基于该模式应用XML数据。
1.1 快速入门
应用gSOAP对象构建Web services应用法度或实现主动化XML数据绑定,你须要具备如下前提:
- 从http://www.genivia.com/Products/downloads.htmlgSOAP软件包。(选择标准版)
- 一个C或者C++的编译器.
- 如想支撑SSL(HTTPS)和紧缩,你还须要安装OpenSSL、Zlib库.这些库实用于大多半平台,同时凡是也是已经安装好的.
gSOAP是自力的软件,不须要安装第三方软件(除非你想应用OpenSSL或者你想从头构建soapcpp2对象,见下文). 从SourceForge获取的gSOAP包在gsoap/bin目次下有预构建的对象:(注:SourceForget是开源软件开辟者进行开辟经管的集中式场合,也是全球最大开源软件开辟平台和仓库):
- wsdl2h :WSDL/模式导入和数据映射绑定对象。(注:该对象将wsdl转换为开辟用的.h文件).
- soapcpp2 :存根/框架编译器和代码生成器。(注:该对象根据.h文件主动生成项目组C/CPP说话代码).
这两个法度支撑Windows、Linux和Mac OS 平台,详情参考README文件。.尽管gSOAP为不合平台筹办了二进制格局的对象,但他们生成的代码是等价的。这意味着生成的源代码可以移植到其他平台并进行本地化编译. 若是你没有该对象或者你想从头构建,你须要:
- 一个C编译器和Bison(或Yacc)来构建soapcpp2。(注Bison和Yacc也是一种编译器)
- 一个C编译器和Flex(或Lex)来构建soapcpp2。
- 一个C++编译器来构建wsdl2h。
Bison和Flex是推荐的。两者与gSOAP基于雷同的开源标准公布的。
- ison 可从此处获得: http://www.gnu.org/software/bison
- Flex 可从此处获得: http://flex.sourceforge.net
gSOAP引擎可以被构建成libgsoap.a和libgsoap++.a库,后者支撑SSL。参照README.txt的指导可以看到如何经由过程 gSOAP包里的autoconf和automake构建与平台无关的库。或者,你将引擎的源代码stdsoap2.c(或stdsoap2.cpp)直 接编译并链接进你们里。(注:申明gSOAP供给两种应用体式格式 ,一种编译成动态链接库,或者直接将源代码编译进)gSOAP包中,在samples目次下有很多例子。履行make号令可以构建这些例子法度。这些例子同时也是用来显现gSOAP不合特点的。比如,在 samples/mtom-streaming中,一个流式的MTOM附件办事端和客户端法度显现高效的文件传输;在samples /webservice中,SSL-secure收集办事端显现可认为Web流览器和Web办事调用生成不合的内容。诸如此类,还有很多。
1.2 快速开端:开辟一个 Web Service 客户端应用法度
经由过程高等XML模式解析器和代码生成器可实现XML数据绑定,这大大削减了构建Web Service法度的难度。wsdl2h对象导入一个或多个WSDL和XML模式可以生成C/C++头文件,该文件定义了Web Service操纵以及C/C++数据类型。gsoapcpp2然手按照该头文件生成XML序列化的数据类型、客户端框架代码 (soapClient.cpp)和办事端框架代码(soapServer.cpp)。gSOAP编译器也可以生成WSDL定义文件,用来从头实现一个办事。这个闭环可以使Web services开辟基于WSDL文件或者基于C/C++头文件中的一系列选项,不须要用户去解析Web办事细节。你只须要遵守一些步调履行号令行或Makefile(应用MSVC++ IDE的话参照sample目次下的MSVC++例子)。例如,为了生成策画器Web应用代码,我们经由过程号令行履行wsdl2h对象,从URL上的 WSDL文件生成头文件,这里应用-o指定输出文件名:
> wsdl2h -o calc.h http://www.genivia.com/calc.wsdl 彼此相爱,却不要让爱成了束缚:不如让它成为涌动的大海,两岸乃是你们的灵魂。互斟满杯,却不要同饮一杯。相赠面包,却不要共食一个。一起歌舞欢喜,却依然各自独立,相互交心,却不是让对方收藏。因为唯有生命之手,方能收容你们的心。站在一起却不要过于靠近。—— 纪伯伦《先知》 |