xulifei23 / gsoap Goto Github PK
View Code? Open in Web Editor NEWThis project forked from stoneyrh/gsoap
Mirror to gSOAP from SourceForge
License: Other
This project forked from stoneyrh/gsoap
Mirror to gSOAP from SourceForge
License: Other
================================================================================ Thanks for using gSOAP! The gSOAP toolkit provides a cross-platform software development toolkit for C and C++ server and client Web service applications, and simplifies the overall use of XML in any type of application. The toolkit supports SOAP 1.1/1.2 RPC encoding and document/literal styles, WSDL 1.1, MTOM/MIME/DIME attachments (streaming), SOAP-over-UDP, request-response and one-way messaging. The toolkit also supports WS-Addressing and WS-Security, with several other WS-* available or under development. See the official open-source gSOAP website http://gsoap2.sourceforge.net for project status and latest news. * The gSOAP 'soapcpp2' compiler and code generator and 'stdsoap2' runtime engine are stable since version release 2.1.3. * The gSOAP 'wsdl2h' WSDL/schema parser and code generator is stable since wsdl2h version release 1.1.0. The 'wsdl2h' tool fully supports WSDL 1.1, XML schemas, WS-Policy, and other WS-* protocols (details in the fact sheet). The software is provided "as is", without any warranty. However, gSOAP has been extensively field-tested in production-quality software development. We continue to improve gSOAP and add new features. See NOTES.txt for distributed notes and an overview of the package contents. See INSTALL.txt for installation instructions. See LICENSE.txt for software licensing. ================================================================================ WHAT'S COOL? ================================================================================ The gSOAP 'wsdl2h' tool is a gSOAP application itself, which demonstrates the capabilities of the generic XML handling by the toolkit to parse WSDL, XML schemas, and SOAP/XML. The gSOAP toolkit supports streaming technologies to expedite SOAP/XML and MTOM/MIME attachment transfers of potentially unlimited data lengths. The gSOAP toolkit is the only toolkit that supports the serialization of native C and C++ data types directly in XML. You can use it to export and import your application data in XML without having to write wrapper routines. The gSOAP toolkit ensures as small memory footprint. XML is a processed as a transient format and not buffered. Many optimizations have been applied to reduce resource requirements and to expedite XML parsing. The gSOAP toolkit provides stand-alone HTTP(S) web server functionality as well as Apache mod and IIS hooks (located in gsoap/mod_gsoap). Also CGI and FastCGI are supported. A web server example demonstrating the stand-alone functionality is included in the package. ================================================================================ FEATURES ================================================================================ XML data binding tools for C/C++ XSD schema <=> C/C++ type binding means XML and C/C++ data is type safe XML streaming auto-serialization of C/C++ data, with optional use of DOM XML-RPC from/to JSON from/to C/C++ serialization (also in streaming mode) WSDL 1.1, SOAP 1.1 & 1.2 compliant REST HTTP(S) 1.0/1.1 operations (GET,PUT,POST etc) for XML, JSON, etc Send and recieve XML over sockets, file FD, and C++ streams WS-I Basic Profile 1.0a, 1.1, and 1.2 compliant RSS 0.91, 0.92, 2.0 XML support MIME and MTOM attachment support (also in streaming mode) WS-Security XML authentication, signatures, encryption (also in streaming mode) WS-Policy 1.2, 1.5 and WS-SecurityPolicy 1.2 compliant WS-Addressing 2003/03, 2004/03, 2005/03 compliant WS-ReliableMessaging compliant WS-Discovery support UDDI v2 API NTLM authentication HTTP basic and digest authentication SSL/TLS communications with SSL session caching (OpenSSL or GNUTLS) Proxy and proxy authentication support Compression (HTTP(S) compression and zlib) IPv4 and IPv6 supported, TCP and UDP SOAP-over-UDP Apache 1.x and 2.0 modules IIS (ISAPI) and WinInet modules CGI and FastCGI support Stand-alone Web server included (multithreaded, SSL, compression) Integrated memory management with deallocation and leak detection Plug-ins for additional capabilities Internationalization/localization support (UTF8, UCS4, MB encodings, etc) WSDL/XSD conversion to C or C++ and vice versa Portable to small devices (WinCE, Palm, Symbian, VxWorks, Andriod, iPhone) Auto-test server code generation for (dummy) server testing Automatic XML document and message generation from WSDL and XSD C/C++ (cyclic) object graph auto-serialization (with SOAP id-href encoding) STL container auto-serialization and custom C++ container auto-serialization Over 40 example client and server applications included ================================================================================ PACKAGE ================================================================================ This distribution package contains platform-independent source code. Pre-built 'soapcpp2' and 'wsdl2h' binaries are included for the following platforms: * Win32 i386 compatible * Linux i386 compatible * MAC OS X universal The binaries are located in 'gsoap/bin'. Important: these 'wsdl2h' binaries use the default configuration without SSL support (no HTTPS site access). To configure and build the toolkit binaries and libraries, please see the installation instructions in the 'INSTALLATION' section below. ================================================================================ GETTING STARTED ================================================================================ Follow the installation instructions in INSTALL.txt first. The gSOAP 'wsdl2h' tool converts WSDLs into a gSOAP header file for processing with the gSOAP stub/skeleton generator 'soapcpp2' to generate XML serialization, stubs, and skeletons code to build Web services applications. Use 'wsdl2h' followed by 'soapcpp2' to translate an entire set of WSDL and XML schemas into representative C or C++ data structures and associated XML parsers. You can also use the gSOAP 'soapcpp2' tool directly on existing C/C++ data structure declarations to create XML serialization routines for these types to simplify the storage of data in XML. Example translation of WSDL to code in two steps: $ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl $ soapcpp2 calc.h The 'calc.h' header file contains the services and XML schema types represented in C/C++, together with other useful information copied from the WSDL related to the service. Run Doxygen on it to generate a nice set of pages. Do not include the wsdl2h-generated 'calc.h' header file directly into your code (the declarations are replicated in the generated code). The header file is processed by the gSOAP stub compiler 'soapcpp2' to generate the following files for your project: soapClient.cpp client-side stub routines for service invocation soapServer.cpp server-side skeleton routines for server development soapC.cpp C/C++ parameter marshalling code calc.nsmap An XML-to-C/C++ namespare mapping table To compile a client, all you need to do is to compile and link 'soapC.cpp', 'soapClient.cpp', and 'stdsoap2.cpp' (or the installed libgsoap++, see INSTALLATION below) with your code. In your source code, add: #include "soapH.h" #include "calc.nsmap" This imports all soapcpp-generated definitions and the namespace mapping table. To develop a C++ client application based on proxies, use 'soapcpp2' option -i: $ wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl $ soapcpp2 -i calc.h This generates 'soapcalcProxy.h' and 'soapcalcProxy.cpp' with a calcProxy class you can use to invoke the service. For example: #include "soapcalcProxy.h" #include "calc.nsmap" main() { calcProxy service; double result; if (service.add(1.0, 2.0, result) == SOAP_OK) std::cout << "The sum of 1.0 and 2.0 is " << result << std::endl; else service.soap_stream_fault(std::cerr); } Compile and link with 'soapC.cpp' and 'stdsoap2.cpp' (or -lgsoap++). To develop a C client, use 'wsdl2h' option -c to generate pure C code. There are many options that you can use depending on the need to develop C applications, C++ with or without STL, or C++ proxy and server objects. In addition, the XML schema type mapping is defined by 'typemap.dat', located in the project root and 'WS' folders. The 'typemap.dat' file is used to customize the 'wsdl2h' output. It is important to use this file for larger projects that depend in WS-* protocols, such as WS-Addressing and WS-Security. More information about the 'wsdl2h' and 'soapcpp2' tools and their options can be found in the gSOAP documentation and the Quick How-To page on the gSOAP Web site, see: http://gsoap2.sourceforge.net See also the 'gsoap/wsdl/README.txt' for more details on the WSDL parser and installation. The 'gsoap/bin' folder includes pre-built 'soapcpp2' and 'wsdlh2' executables for various platforms. ================================================================================ BUILD NOTES ================================================================================ QNX On QNX the bison.simple file is located in $QNX_HOST/usr/share/bison.simple Update your .profile to include: export BISON_SIMPLE=$QNX_HOST/usr/share/bison/bison.simple export BISON_HAIRY=$QNX_HOST/usr/share/bison/bison.hairy WIN32 Bison 1.6 can crash on Win32 systems if YYINITDEPTH is too small Compile with /DYYINITDEPTH=5000 ================================================================================ CHANGELOG ================================================================================ Visit http://www.cs.fsu.edu/~engelen/changelog.html to view the latest changes. ================================================================================ LICENSE ================================================================================ See LICENSE.txt ================================================================================ COPYRIGHT ================================================================================ gSOAP is copyrighted by Robert A. van Engelen, Genivia, Inc. Copyright (C) 2000-2010 Robert A. van Engelen, Genivia, Inc. All Rights Reserved. ================================================================================ USE RESTRICTIONS ================================================================================ You may not: (i) transfer rights to gSOAP or claim authorship; or (ii) remove any product identification, copyright, proprietary notices or labels from gSOAP. ================================================================================ WARRANTY ================================================================================ GENIVIA INC. EXPRESSLY DISCLAIMS ALL WARRANTIES, WHETHER EXPRESS, IMPLIED OR STATUTORY, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY, OF FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT OF THIRD PARTY INTELLECTUAL PROPERTY RIGHTS, AND ANY WARRANTY THAT MAY ARISE BY REASON OF TRADE USAGE, CUSTOM, OR COURSE OF DEALING. WITHOUT LIMITING THE FOREGOING, YOU ACKNOWLEDGE THAT THE SOFTWARE IS PROVIDED "AS IS" AND THAT GENIVIA INC. DO NOT WARRANT THE SOFTWARE WILL RUN UNINTERRUPTED OR ERROR FREE. LIMITED LIABILITY: THE ENTIRE RISK AS TO RESULTS AND PERFORMANCE OF THE SOFTWARE IS ASSUMED BY YOU. UNDER NO CIRCUMSTANCES WILL GENIVIA INC. BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES OF ANY KIND OR NATURE WHATSOEVER, WHETHER BASED ON CONTRACT, WARRANTY, TORT (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, ARISING OUT OF OR IN ANY WAY RELATED TO THE SOFTWARE, EVEN IF GENIVIA INC. HAS BEEN ADVISED ON THE POSSIBILITY OF SUCH DAMAGE OR IF SUCH DAMAGE COULD HAVE BEEN REASONABLY FORESEEN, AND NOTWITHSTANDING ANY FAILURE OF ESSENTIAL PURPOSE OF ANY EXCLUSIVE REMEDY PROVIDED. SUCH LIMITATION ON DAMAGES INCLUDES, BUT IS NOT LIMITED TO, DAMAGES FOR LOSS OF GOODWILL, LOST PROFITS, LOSS OF DATA OR SOFTWARE, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION OR IMPAIRMENT OF OTHER GOODS. IN NO EVENT WILL GENIVIA INC. BE LIABLE FOR THE COSTS OF PROCUREMENT OF SUBSTITUTE SOFTWARE OR SERVICES. YOU ACKNOWLEDGE THAT THIS SOFTWARE IS NOT DESIGNED FOR USE IN ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS SUCH AS OPERATION OF NUCLEAR FACILITIES, AIRCRAFT NAVIGATION OR CONTROL, OR LIFE-CRITICAL APPLICATIONS. GENIVIA INC. EXPRESSLY DISCLAIM ANY LIABILITY RESULTING FROM USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS AND ACCEPTS NO LIABILITY IN RESPECT OF ANY ACTIONS OR CLAIMS BASED ON THE USE OF THE SOFTWARE IN ANY SUCH ON-LINE EQUIPMENT IN HAZARDOUS ENVIRONMENTS BY YOU. FOR PURPOSES OF THIS PARAGRAPH, THE TERM "LIFE-CRITICAL APPLICATION" MEANS AN APPLICATION IN WHICH THE FUNCTIONING OR MALFUNCTIONING OF THE SOFTWARE MAY RESULT DIRECTLY OR INDIRECTLY IN PHYSICAL INJURY OR LOSS OF HUMAN LIFE. ================================================================================ EXTERNAL THIRD-PARTY LIBRARIES ================================================================================ The gSOAP toolkit is mostly self-contained and does not require any third-party software to run in a basic configuration. When compression and SSL encryption are required the Zlib and OpenSSL libraries must be installed. To build the gSOAP 'soapcpp2' compiler, you must have Bison and Flex installed or the older Yacc and Lex equivalents. Note that licensing differs for Flex versus Lex, and Bison versus Yacc. Win32 builds of clients and services requires winsock.dll. To do this in Visual C++ 6.0, go to "Project", "settings", select the "Link" tab (the project file needs to be selected in the file view) and add "wsock32.lib" to the "Object/library modules" entry. The distribution contains a Visual Studio 2005 project example in the 'samples/calc_vs2005' folder with the necessary project settings to link libraries and automatically invoke to soapcpp2 compiler as a custom build. ================================================================================ DISCLAIMER ================================================================================ WE TRY OUR BEST TO PROVIDE YOU WITH "REAL-WORLD" EXAMPLES BUT WE CANNOT GUARANTEE THAT ALL CLIENT EXAMPLES CAN CONNECT TO THIRD PARTY WEB SERVICES WHEN THESE SERVICES ARE DOWN OR HAVE BEEN REMOVED. ================================================================================
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.