function
|
Library: Web Services Broker (OMWSB)
Import : omwsb.xmd |
export external function forward-request
value request request
Argument definitions
The wsb.forward-request function provides a mechanism to request servicing
from the WSB. The function is passed a wsb.request object which contains
both the header needed to route and process the request and the body with
the data. This wsb.request object is most commonly the request object
received from a wsb.wait-for-request function call. The function
wsb.set-request-header is used to set the header of the wsb.request object.
When the WSB is called with this function it routes the passed request to
the appropriate program, which processes it. The requesting program should
not do any further processing on the request object.
This example shows how to reroute a SOAP request to a service called DoCalc.
The program waits for the request then fetches the request objects header
and rewrites the SOAPAction header tupple to point to DoCalc. Then the
program sets the request object's header using the wsb.set-request-header
function to the new value. Then the program forwards the request using the
function wsb.forward-request. Finally the function loops and waits for the
next request for it to forward.
import 'omwsb.xmd' prefixed by wsb. process repeat local stream head local wsb.request req set req to wsb.wait-for-request open head as buffer using output as head submit wsb.request-header of req close head wsb.set-request-header of req to head wsb.forward-request req catch #external-exception identity catch-id rethrow when catch-id = "OMWSB000" again catch #external-exception find "SOAPAction: " any ++ "%13#%10#" output "SOAPAction: %"http://DoCalc%"%13#%10#"