SoapServerApp
SOAP Server Application Configuration
The N2SVCD SOAP Server Application listens for inbound SOAP.
The SOAP Server Application does not process any user content itself. It exists only as an agent to receive requests on behalf of another application.
Typical uses of the SoapServerApp are:
- As an inbound SOAP Gateway, inbound SOAP requests are handed over the the LogicApp to invoke Lua scripting logic (via the SoapLuaService service plugin).
See the N2SVCD Configuration Overview for more information on how the SOAP Server Application interacts with other components.
The following configuration is used to create a SOAP Application TCP Server instance.
<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
...
<applications>
...
<application name="SOAP-SERVER" module="SoapServerApp">
<include><lib>../apps/rest_s/lib</lib></include>
<parameters>
<parameter name="trace_level" value="1"/>
<parameter name="local_port" value="7077"/>
</parameters>
<config>
<handlers>
<handler application="Logic"/>
</handlers>
</config>
</application>
...
</application>
...
</n2svcd>
Configuration Details
The application
element attributes for a SOAP Server Application instance may include the below.
For details of the various parameter types used, refer to Common Configuration.
Parameter Name | Type | XML Type | Description |
---|---|---|---|
See: Common Application configuration | |||
See: TCP Application configuration | |||
module
|
String | Attribute |
[Required] SoapServerApp
|
include.lib
|
String | Element |
[Required] ../apps/rest_s/lib
|
parameters
|
Array | Element |
[Required] As per Common Configuration Application parameters .
|
"edr_enabled"
|
- | - | This value is ignored; the SOAP Server Application does not support writing EDRs. |
"socket_mode"
|
String | Attribute |
The SOAP Server Application supports only listen (TCP Server).(Default = listen )
|
"remote_port"
|
Positive Integer | Attribute |
As per common TCP configuration for remote_port .(Default = 7077 )
|
"ping_interval"
|
- | - | This value is ignored; the SOAP Server Application does not support sending of ping messages. |
"quirks_mode"
|
String | Attribute |
The integration quirks to apply to client connections, as described in Quirks Modes. (Default = generic )
|
"output_mode"
|
Positive Integer | Attribute |
The form of XML to output, as described in the toString
LibXML documentation.(Default = 1 )
|
"ns_array_items"
|
Boolean | Attribute |
Whether array items should include their container's namespace, if any.
Applies only when `quirks_mode` is `simple`. (Default = 0 )
|
config
|
Object | Element | Container for extended configuration for this application. |
.handlers
|
Array | Element |
Array of SOAP handler elements for selecting the owning Application for inbound SOAP requests.
|
SOAP Handlers
Handler rules define which application is used to process inbound SOAP Requests.
Each handler
Object in the config
.handlers
Array is configured as follows.
Parameter Name | Type | XML Type | Description |
---|---|---|---|
method
|
String | Attribute |
[Required] The inbound HTTP method, e.g. GET , PUT , POST , DELETE .
|
path
|
String | Attribute |
A path from the URL, matched exactly against the path of the inbound request. Only one of path or path_prefix may be specified.
|
path_prefix
|
String | Attribute |
A path from the URL, prefix matched against the path of the inbound request. Only one of path or path_prefix may be specified.
|
application
|
String | Attribute |
[Required] The name of the application which should process matching messages. This will normally refer to a LogicApp instance. |
The handlers will be checked in order, and the first matching handler will be used.
Quirks Modes
The SOAP Server Application may operate in a “quirks mode”, which controls the extraction of received SOAP arguments into local representation and the SOAP encoding of the response parameters. These modes may also affect the selection and structure of namespaces and other SOAP attributes.
The available quirks modes are listed below.
generic
for no specific quirkssimple
for simplified outputncc_pi
for quirks when integrating with Oracle NCC PI
Quirks Mode (Generic)
The generic
value of quirks_mode
is a default “normal” SOAP interpetation
of input and output parameters which is provided as an initial starting point
for integrating with other end-points.
Quirks Mode (Simple)
The simple
value of quirks_mode
is the same as the generic
setting with some small differences.
Outbound boolean values, nil values, and array structures do not contain type declarations to SOAP types.
In addition, outbound array items:
- Are named according to their parent container.
- Contain namespace identifiers.
For example, a source array of data such as:
groups => [ { name = "Group 1" } ]
… would become:
<ns:groups>
<ns:group>
<ns:name>Group 1</ns:name>
</ns:group>
</ns:groups>
For item naming in array containers, the following rules are applied (in order):
- If the containing node is named following the pattern
parent_ITEMS_AS_child
, the containing node will be calledparent
and each item within it will be namedchild
. - If the containing node is named
...ies
, assume the singular ends iny
. For example, a container nodequeries
would have individual array items namedquery
. - If the containing node is named
...s
, assume the singular is formed by removing thes
. For example, a container nodegroups
would have individual array items namedgroup
. - Otherwise, the individual array items are named
item
.
In all cases, the parent namespace identifier, if any, is only applied if ns_array_items
is enabled.
Quirks Mode (NCC PI)
The ncc_pi
quirks mode is intended to be compatible with the interpretation of
the SOAP standard as used by Oracle’s NCC Provisioning Interface server. A SOAP
server using this quirks mode should parse input and return output using an XML
structure that is compatible with clients that were developed to interface with
the Oracle NCC PI.
Message Handling
In addition to the common Application management messages, the SOAP Server Application uses the following messages:
- SOAP-S Messages (SOAP-S-REQUEST outbound).