SOAP-S Messages

Introduction

The SoapServerApp uses SOAP-S-… messages to communicate with other applications (such as the LogicApp) to handle inbound SOAP/HTTP(S) requests received from an external SOAP/HTTP(S) Client.

The following LuaApp agents from the core n2svcd module handle messages from SoapServerApp.

The internal SOAP-S-… messages are:

Note that this page uses the term “on-the-wire” to refer to the sending or receiving of SOAP content by the SoapServerApp. This term is also inclusive of the case where the message is sent by local loopback and does not physically transit a Network Interface Controller (NIC).

SOAP-S-REQUEST

The SOAP-S-REQUEST message is sent by SoapServerApp to the application that is configured for handling of inbound SOAP requests.

Refer to the SoapServerApp Configuration documentation for more information on setting default parameters.

The attributes of the SOAP-S-REQUEST message are:

Field Type Description
soap Object Container for the parameters of the SOAP request that we have received.
.remote_ip String The remote dot-notation IP address from which the SOAP HTTP(S) request was sent.
.remote_port Integer The remote TCP/IP port from which the SOAP HTTP(S) request was sent.
.method String The HTTP Request method.
.uri String The URI for which the request was received.
Includes only path and query. No host/port/auth/user/fragment is present.
Any special characters will be escaped using standard URI escape rules.
.path String The URI path.
Any special characters will be escaped using standard URI escape rules.
.query String The URI query string (the part following "?" in the URI).
Any special characters will be escaped using standard URI escape rules.
.message_name String The name of the SOAP message (without namespace), being the name of the element contained within the SOAP body.
.args Object The args provided by the client into the SOAP request. This may be a complex, nested structure. The decoding and parsing of the args into an internal object representation differs slightly according the quirks_mode.
.message_namespace Object A container for the message namespace information.
.location message/envelope Location of the message namespace.
.alias String The alias for the message namespace, if one was used.
.uri String The message namespace URI, if one was provided.
.standard_namespaces Object A container for the standard namespace information.
.encoding_alias String The alias for the standard encoding namespace, if present.
.envelope_alias String The alias for the standard envelope namespace, if present.
.schema_alias String The alias for the standard schema namespace, if present.
.schema_instance_alias String The alias for the standard schema instance namespace, if present.
.http_headers Array of Object The list of HTTP headers parsed from the HTTP Request (see below for object structure).
All HTTP headers are present, including Content-Length and Content-Type.
If a HTTP header was repeated in the HTTP Request, then it is repeated in this Array.

Note that SSL and security parameters are not placed into this message.

Each object in the soap.http_headers Array for SOAP-S-REQUEST has the following structure.

Field Type Description
.name String [Required] The name of the HTTP Request header.
.value String [Required] The full string value of the HTTP Request header.

SOAP-S-RESPONSE

The SOAP-S-RESPONSE message is sent back to the SoapServerApp by the handling application when it is ready to send a SOAP/HTTP Response to the original received SOAP/HTTP Request.

The attributes of the SOAP-S-RESPONSE message are:

Field Type Description
success 0/1 [Required] Indicates if the request handling was successful or not.
error String Indicates the reason why the request handling failed.
Present and applicable only if success == 0.
soap Object Container for the SOAP response parameters we are to send.
Present only if success == 1.
.message_name String Response message name to use.
(Default = Request name with Response appended)
.args Object The arguments which we will encode into XML for the SOAP response.
The quirks_mode for the SoapServerApp will control how this is done.
.http_headers Array of Objects Additional user-level header objects to apply to an outbound HTTP Response (see below for object structure).
These headers are added after any headers defined by static RestServerApp application configuration.
You should not set the Content-Type or Content-Length headers.
(Default = No Additional Headers)

Each object in the soap.http_headers Array for SOAP-S-RESPONSE has the following structure.

Field Type Description
.name String [Required] The name of the HTTP Response header.
.value String [Required] The full string value of the HTTP Response header.
.replace 0 / 1 If 1 then all previous headers of this name are removed, and this header replaces them.
(Default = Append to the existing headers, do not replace)

SOAP-S-FAULT

The SOAP-S-FAULT message is sent back to the SoapServerApp by the handling application when it is ready to send a HTTP SOAP Fault to the original received HTTP Request.

The attributes of the SOAP-S-FAULT message are:

Field Type Description
success 0/1 [Required] Indicates if the request handling was successful or not.
error String Indicates the reason why the request handling failed.
Present and applicable only if success == 0.
soap Object Container for the SOAP fault parameters we are to send.
Present only if success == 1.
.args Object The arguments which we will encode into XML for the SOAP fault response.
The quirks_mode for the SoapServerApp will control how this is done.
.http_headers Array of Objects Additional user-level header objects to apply to an outbound HTTP fault (see below for object structure).
These headers are added after any headers defined by static RestServerApp application configuration.
You should not set the Content-Type or Content-Length headers.
(Default = No Additional Headers)

Each object in the soap.http_headers Array for SOAP-S-FAULT has the following structure.

Field Type Description
.name String [Required] The name of the HTTP Response header.
.value String [Required] The full string value of the HTTP Response header.
.replace 0 / 1 If 1 then all previous headers of this name are removed, and this header replaces them.
(Default = Append to the existing headers, do not replace)