NonStop SOAP User's Manual
NonStop SOAP User-Exits
NonStop SOAP User’s Manual—520501-012
C-24
SOA Enable a Nonstop Server Application With
User-Exits
server using the automatically generated Makefile (modified as necessary) to produce 
the customized NonStop SOAP server executable. 
The user-exit code is implemented by overriding the virtual methods of the class 
SoapUEHandler. The SoapPW_UEHandler_<servicename> class is derived from 
the base class SoapUEHandler, which, in turn, uses the classes ServiceReqResp 
and ServiceEnv. Because the SoapPW_UEHandler_<service name> class is 
similar to the SoapUEHandler_Generic class, you may use the 
SoapUEHandler_Generic class as a template for your service-specific user-exit 
class. 
User-Exit Code Implementation
Following is an example user-exit code implementation for customizing the NonStop 
SOAP server for the NonStop Tuxedo SIMPAPP application. Again, note that the 
general principles described here apply, even if NonStop Tuxedo is not being used. 
This is achieved by implementing three user-exit methods of the 
SoapPW_UEHandler_TOUPPER (i.e., SoapPW_UEHandler _<service name>) class: 
•
The Pre_Process() method, which skips the normal NonStop SOAP server 
service() routine 
•
The Pre_Service()method, which invokes the NonStop Tuxedo TOUPPER 
service and saves the service response buffer 
•
The Pre_Marshal()method, which transforms the Service Response buffer into 
the SOAP Response structure expected by NonStop SOAP software’s marshal() 
method 
To summarize, the user-exit processing for this example (customized user-exit 
methods are shown in italic type) is as follows: 
<xml> /* service consumer SOAP request XML document input to 
NSSOAP server */ 
> Pre_Process()
 skipService() /* bypass the standard NSSOAP service 
invocation */ 
> process()/unmarshal() 
Transform the SOAP request XML document into the SOAP Request structure based 
on the  service request DDL definition 
> Pre_Service() 
 Transform the SOAP Request structure into the Service Request buffer expected by 
the NonStop Tuxedo service 
 tpcall(“TOUPPER”, req_buf, resp_buf) /*invoke the target NSTuxedo service*/ 










