Rogue Wave banner
Previous fileTop of DocumentContentsIndex pageNext file
HydraExpress Web Service Development Guide
Rogue Wave web site:  Home Page  |  Main Documentation Page

16.2 Architecture

Header supported is primarily provided by the class rwsf::CallInfo. In the client implementation, a rwsf::CallInfo object is used to define additional header elements to be added to the request message. These additional header elements are processed mainly by the invoke() method of rwsf::Client, which extracts the header data from the rwsf::CallInfo object and places it into SOAP and transport headers in the outgoing request message.

On the server, the SOAP headers are processed by the invoke() method of the class rwsf::MessageServiceImp. This method parses the incoming SOAP message, extracting any header data and placing it into a rwsf::CallInfo object. If there is a response, when the response returns to the invoke() method, it calls rwsf::CallInfo::soapResponseHeadersAsString() to obtain the response header data as a properly formatted SOAP string and places it into the SOAP response message.

Transport header data is processed by the invoke() method of the class rwsf::HttpTransport (or rwsf::HttpsTransport for secure clients). The processing is similar to that for SOAP headers: the incoming message is parsed for transport header data, which is placed in a rwsf::CallInfo object, and the process is reversed to create an HTTP header for the response message.

HydraExpress parses and validates the format of the incoming SOAP header, returning a server error if the format is invalid. HydraExpress also guarantees correct formatting of the response SOAP header. No such validation occurs for HTTP headers. You must guarantee that the string representing header data is valid when adding it on the client or modifying it on the server.

If you create your own transport and you want that transport to support custom header elements, the transport code must know how to add and later consume these additional header elements. For more information on creating a transport, see Chapter 11, "Dynamic Transports."For more information on creating a message handler, see Chapter 15, "SOAP Message Handler SDK."



Previous fileTop of DocumentContentsIndex pageNext file

©2004-2007 Copyright Quovadx, Inc. All Rights Reserved.
Quovadx and Rogue Wave are registered trademarks of Quovadx, Inc. in the United States and other countries. All other trademarks are the property of their respective owners.
Contact Rogue Wave about documentation or support issues.