SoapClientApp

SOAP Client Application Configuration

The N2SVCD SOAP Client Application is a protocol gateway application which can perform client requests using the SOAP/XML protocol. The application supports minor variations in the interpretation of the SOAP standard by using a quirks_mode setting.

A single SOAP Client Application instance will maintain a pool of connections to a single Server Address. If you need to connect to more than one remote SOAP Server Address, you must configure multiple SOAP Client Application instances (each with unique names).

The N-Squared Tester Application requires a SOAP Client Application instance to be installed in order to execute SOAP tests (including “OSD” tests).

The following configuration is used to create a SOAP Client Application instance to act as a protocol gateway to a SOAP server.

<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
  ...
  <applications>
    ...
    <application name="OSD-SLC01" module="SoapClientApp">
      <include><lib>../apps/soap_c/lib</lib></include>
      <parameters>
        <parameter name="quirks_mode" value="ncc_osd"/>
        <parameter name="remote_host" value="10.42.2.154"/>
        <parameter name="remote_port" value="4999"/>
        <parameter name="username" value="admin"/>
        <parameter name="password" value="admin"/>
        <parameter name="pool" value="3"/>
        <parameter name="security" value="inline"/>
        <parameter name="ssl" value="1"/>
        <parameter name="ssl.SSL_verify_mode" value="0"/>
      </parameters>
      <config>
        <headers>
          <header name="x-api-key" value="aaaaaa-bbbbbb-ccccc-dddddd"/>
      </config>
    </application>
    ...
  </application>
  ...
</n2svcd>

Configuration Details

The application element attributes for a SOAP Client 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] SoapClientApp
include.lib String Element [Required] ../apps/osd/lib
parameters Array Element [Required] As per Common Configuration Application parameters.
"edr_enabled" - - This value is ignored; the SOAP Client Application does not support writing EDRs.
"socket_mode" String Attribute The SOAP Client Application supports only connect (TCP Client).
(Default = connect)
"remote_host" String Attribute [Required] As per common TCP configuration for remote_host.
"remote_port" Integer Attribute As per common TCP configuration for remote_port.
(Default = 80)
"ping_interval" - - This value is ignored; the SOAP Client 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)
"output_mode" Positive Integer Attribute The form of XML to output, as described in the toString LibXML documentation.
(Default = 1)
"uri" String Attribute URI to pass in HTTP Request. (Default = "http://<remote_host>:<remote_port>")
"username" String Attribute Username to present to OSD SOAP Server as credentials. Only relevant when quirks_mode = ncc_osd.
"password" String Attribute Password to present to OSD SOAP Server as credentials. Only relevant when quirks_mode = ncc_osd.
"security" String Attribute Mechanism for passing username/password. Possible values are:
  • none = no username/password
  • basic = Basic Auth in HTTP Headers
  • inline = in body parameters
(Default = basic)
"message_uri" String Attribute The common message URI to use. Possible values are:
  • message = at message level only
  • envelope = at message level and SOAP envelope level
  • all = on all elements within message
(Default = http://eservglobal.com/2009/05/15/pi for quirks_mode of ncc_pi, otherwise not set)
"ns_message_location" String Attribute The location to put namespacing information. Possible values are:
  • message = at message level only
  • envelope = at message level and SOAP envelope level
(Default = message for quirks_mode of ncc_osd, otherwise envelope)
"ns_message_alias" String Attribute The namespace alias to use if namespaces are enabled. (Default = pi for quirks_mode of ncc_pi, otherwise oper)
config Object Element Container for extended configuration for this Application instance.
.http_headers Array Element Array of SOAP http_header elements for additional HTTP headers to send with each SOAP operation.

Note: the SOAP Client Application only allows one outstanding request per client connection.

SOAP Headers

Each http_header Object in the config.http_headers Array is configured as follows.

Parameter Name Type XML Type Description
name String Attribute [Required] The HTTP Header key.
value String Attribute [Required] The HTTP Header Value.

Each configured HTTP header will be appended to all outbound SOAP requests.

Application-defined static HTTP headers will be added first. Per-request HTTP headers will be added subsequently.

Quirks Modes

The SOAP Client 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.

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, all outbound parameters have namespaces applied unless configured otherwise.

Quirks Mode (BRM)

The brm value of quirks_mode is used for compatibility with the Oracle BRM SOAP server.

Quirks Mode (NCC OSD)

The ncc_osd quirks mode is intended to be compatible with the interpretation of the SOAP standard as used by Oracle’s NCC Open Services Development server running on an OCNCC SLC node.

Note that from N2SVCD 7.3.17 onwards, SoapClientApp with quirks_mode = ncc_osd replaces the earlier OSDApp. When upgrading, simply change your configuration to specify the new module, lib and quirks_mode as follows.

Pre 7.3.17.

    <application name="OSD-SLC01" module="OSDApp">
      <include><lib>../apps/osd/lib</lib></include>
      <parameters>
        <parameter name="remote_host" value="10.42.2.154"/>

Version 7.3.17 or later.

    <application name="OSD-SLC01" module="SoapClientApp">
      <include><lib>../apps/soap_c/lib</lib></include>
      <parameters>
        <parameter name="quirks_mode" value="ncc_osd"/>
        <parameter name="remote_host" value="10.42.2.154"/>

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 running on an OCNCC SMS node.

Note that from N2SVCD 7.4.0 onwards, SoapClientApp with quirks_mode = ncc_pi replaces the earlier PIApp. When upgrading, simply change your configuration to specify the new module, lib and quirks_mode as follows.

Pre 7.4.0.

    <application name="PI-SMS" module="PIApp">
      <include><lib>../apps/pi/lib</lib></include>
      <parameters>
        <parameter name="remote_host" value="10.42.2.154"/>

Version 7.4.0 or later.

    <application name="PI-SMS" module="SoapClientApp">
      <include><lib>../apps/soap_c/lib</lib></include>
      <parameters>
        <parameter name="quirks_mode" value="ncc_pi"/>
        <parameter name="remote_host" value="10.42.2.154"/>

Message Handling

In addition to the common Application management messages, the SOAP Client Application uses the following messages: