NonStop SOAP User's Manual
NonStop SOAP Features and Functions
NonStop SOAP User’s Manual—520501-012
4-27
The SOAP Administration Tool
The SOAP Administration Tool
The SOAP Admin tool parses an XML input file conforming to the SDL DTD and
schema languages to create these types of files:
•
WSDL and schema files for each service in the SDL
•
Optional Makefile for building the server process and generating user-exit code
•
DTDs and schemas for the requests and responses described in the DDL
•
HTML client including client-side JavaScript and XML files containing empty
requests for use in prototyping
•
SOAP request and response files for each service in the SDL
For more information on using the SOAP Admin tool, see Section 5, Using the SOAP
Admin Tool.
Customizing the SOAP Server
You can customize SOAP servers accessing TS/MP services or NonStop processes
using the code-generation feature of the SOAP Admin tool. The code generated and
exposed for customization is in the form of user-exits. user-exits are specific exit points
in the SOAP server’s predefined flow of processing a SOAP message (from a request
to its response), where you are allowed to add code according to the customization
required for the SOAP server to run.
Using the SOAP Admin tool you can generate user-exit class header (*.h) and
implementation (*.cpp) files. The user-exit code is generated based on the value of the
GenerateUserExits attribute at each Service element level in the SDL.
For information on customizing the SOAP server using user-exits, see Section 8,
Customizing the SOAP Server.
Linking the SOAP Library to an Application
The sample LinkSoapLib demonstrates the capability of linking the NonStop SOAP
server library in an application. This capability could be used to write your own protocol
listener, in addition to the HTTP listener that NonStop SOAP provides.
The LinkSoapLib sample uses the method InvokeSoap() that is in the object file
SoapInvoke.o. In previous releases, the code for the method InvokeSoap() was
compiled as a C++ module, so it worked when a C++ client was invoking the method.
Unfortunately, for a C client to invoke this method, it had to use the mangled name,
InvokeSoap__FPCclPPcPl().