The SOAP header is an optional element of a soap request or response. In the header section, meta information on the actual soap message can be set. These meta information can hold additional information about routing of the message, information on encryption or affiliation to a transaction.
The SOAP header can only exist once within a message and has to be the first element within the SOAP envelope. The header though can consist of multiple SOAP header elements. These header blocks are identified via a unique URI and, through that, can be assigned to specific nodes within the message structure. Through this mechanism, the SOAP message stays flexible and can be extended by specifying additional header blocks. The communicating partners do not need any specifications on these header blocks.
The content of these headers can be of any information. A typical usage in practice would be the transfer of security information or setting a transaction ID as the following example shows:The SOAP message does not necessarily need to be sent from one sender to one receiver. The message can also reach its goal over intermediate stations. The elements can directly be addressed to these intermediate services assuming they understand and process the header information.
Reading the SOAP Headers of a service within the service context
The SOAP headers are read from the service context via the operation getSOAPHeaders(). The operation returns an array of SOAPHeaderElements. The result can then be read and processed.
The following example reads the SOAP headers from the service context and reads the header array into the object soapHeaderArray for further parsing (xmlToClass()):
Setting the SOAP Headers of a service within the service context
The E2E Bridge is capable of creating custom SOAP headers elements with a build-in function setSOAPHeaders(). The function is called within the service context and needs an array of SOAPHeaderElement objects as an input. The following example shows how to create a simple SOAP header block and set it to the services context.