
GSOAP APPLICATION EXAMPLES

To build the example services and clients, run 'make' in the 'samples'
directory. The concurrent server examples require the Pthreads library. The SSL
example requires OpenSSL. The webserver example also requires Zlib.

autotest:                 Autotest code generation for XML databindings (C++)
calc:                     Simple calculator client and server (C)
calc++:                   Simple calculator client and server (C++)
calc_vs2005:              VS2005 project calc client example (C++)
calc_xcode:               Mac OS X Xcode project calc client example (C++)
databinding:              Data binding example for address.xsd addressbook (C++)
dime:                     DIME attachment client and server (C++,pthreads)
dom:                      DOM-based calculator client (C++)
factory:                  Remote object factory and simple ORB (C++)
factorytest:              Test client for remote object factory (C++)
gmt:                      One-liner service to tell the time in GMT (C++)
googleapi:                Google Web API client (deprecated by Google) (C)
hello:                    One-liner greeting service (C++)
httpcookies:              HTTP cookie client and server (C++)
link:                     Linking multiple clients/services (C)
link++:                   Linking multiple clients/services (C++)
lu:                       Linear solver client and server (C++)
magic:                    Magic squares client and server (C++,pthreads)
mashup:                   Combining two services into a new service (C)
mashup++:                 Combining two services into a new service (C++)
mtom:                     MTOM attachment client and server (C)
mtom-stream:              MTOM streaming attachment client and server (C)
oneway:                   One-way SOAP messaging event handling (C,pthreads)
oneway++:                 One-way SOAP messaging event handling (C++,pthreads)
polytest:                 Polymorphic object exchange (C++)
roll:                     One-liner roll of a dice service (C++)
router:                   Router of HTTP messages over TCP/IP (C,pthreads)
rss:                      RSS 0.91, 0.92, and 2.0 server (C)
ssl:                      HTTPS/SSL example (C,pthreads,OpenSSL)
template:		  Shows how container templates can be serialized (C++)
udp:                      SOAP-over-UDP example client and server (C)
varparam:                 Variable polymorphic parameters (C++)
webserver:                Stand-alone Web server (C,pthreads,OpenSSL,Zlib)
wsa:                      WS-Addressing demo (C)
wsrm:                     WS-ReliableMessaging demo (C)
wsse:                     WS-Security demo (C,OpenSSL)
xml-rpc:                  XML-RPC support and examples (C/C++)

LIBRARY AND GSOAP PLUGIN SUPPORT

Some of the examples require the following support libraries and plugins:

plugin/threads.h/.c       MS Windows threads and Posix threads wrapper
plugin/cacerts.h/.c       Hard-coded SSL public certificates
plugin/wsaapi.h/.c        WS-Addressing plugin
plugin/wsseapi.h/.c       WS-Security plugin

DISCLAIMER

WE DO 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.

MAC OS X XCODE PROJECTS

A Mac OS X Xcode project example is included in samples/calc_xcode.

MS VS2005 PROJECTS

A Visual Studio 2005 project example is included in samples/calc_vs2005. A
custom build step is defined for the gSOAP header file calc.h. The custom build
step invokes soapcpp2 to generate the source code for the project. Note that
the step to obtain the gSOAP header file calc.h is intentionally omitted, e.g.
wsdl2h is not part of this process. It is advised to run wsdl2h manually and
try various wsdl2h options and typemap.dat definitions to customize the wsdl2h
output.

SSL WITH OPENSSL

To try the SSL-secure SOAP server, install OpenSSL and change the occurrences
of "linprog2.cs.fsu.edu" in sslclient.c and sslserver.c to the machine name
(or machine IP) you are using. Example .pem files are included but you need to
create your own .pem files (see OpenSSL documentation).

The sslclient and sslserver codes can then be build as follows:

soapcpp2 -c ssl.h
gcc -DWITH_OPENSSL -o sslclient sslclient.c stdsoap2.c soapC.c soapClient.c -lssl -lcrypto
gcc -DWITH_OPENSSL -o sslserver sslserver.c stdsoap2.c soapC.c soapServer.c -lssl -lcrypto -lpthread

COPYRIGHT AND LICENSE

Several examples in the 'samples' directory are distributed under GPL or
commercial license. Please refer to the specific licensing comments provided in
the source code files.

A commercial license is available from Genivia, Inc. Please contact:
contact@genivia.com
