SoapServerApp
SOAP Server Application Configuration
The N2SVCD SOAP Server Application listends 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 SoapClientApp 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 Client).(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 ping messages. |
"quirks_mode"
|
String | Attribute |
The integration quirks to apply to client connections, as described in Quirks Modes. (Default = generic )
|
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):
1. If the containing node is named ...ies
, assume the singluar ends in y
.
For example, a container node queries
would have individual array items
named query
.
1. If the containing node is named ...s
, assume the singular is formed by
removing the s
. For example, a container node groups
would have individual
array items named group
.
1. Otherwise, the indivdual array items are named item
.
In all cases, the parent namespace identifier is used, if any.
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).