soapApi

Source processor for exposing SOAP endpoints. Reference to a WSDL specification must be provided.

Properties

Name Summary

wsdlSpecId

Required ID of the WSDL specification following the pattern <type>:<resourceId>:<revision>. Set <revision> to latest to retrieve the latest one. For example: WSDLv1:my-wsdl:latest.

serviceName

Name of the service from the WSDL specification to use. Must be present unless the WSDL spec has only one service. In such a case, the single service is used as the default.

portName

Name of the service port from the WSDL specification to use. Must be present unless the chosen service has only one port. In such a case, the single port will be used as the default.

namespacePrefixMapping

Optional mapping of prefixes to namespaces in the XML request body. The provided prefix mappings are used in the JSON compliant format the payload is converted to. The special _default prefix can be assigned to a single namespace, which is then used as the default namespace for the document and not assigned a prefix.

Defining the prefix mappings here is highly recommended if you are doing any processing of the JSON compliant payload, since it is the only way you can mandate the prefixes yourself. Namespaces not defined here will have automatic prefixes in the form ns1, ns2, etc. generated for them.

This property is a string on the standard Java Properties format. Each line contains a prefix specification on the format <prefix> = <namespace>. Note that namespaces can only be assigned to a single prefix. Duplicated namespaces are not allowed.

responseConversionCharacterSet

Optional character encoding to use if the response received after processing in the flow needs to be converted from binary format. Binary decoding defaults to UTF-8 unless otherwise specified here.

name

Optional, descriptive name for the processor.

id

Required identifier of the processor, unique across all processors within the flow. Must be between 3 and 30 characters long; contain only lower and uppercase alphabetical characters (a-z and A-Z), numbers, dashes ("-"), and underscores ("_"); and start with an alphabetical character. In other words, it adheres to the regex pattern [a-zA-Z][a-zA-Z0-9_-]{2,29}.

exchangeProperties

Optional set of custom properties in a simple jdk-format, that are added to the message exchange properties before processing the incoming payload. Any existing properties with the same name will be replaced by properties defined here.

retainPayloadOnFailure

Whether the incoming payload is available for error processing on failure. Defaults to false.

Sub-builders

Name Summary

messageLoggingStrategy

Strategy for describing how a processor’s message is logged on the server.

payloadArchivingStrategy

Strategy for archiving payloads.

inboundTransformationStrategy

Strategy that customizes the conversion of an incoming payload by a processor (e.g., string to object). Should be used when the processor’s default conversion logic cannot be used.

Details

Endpoints

SOAP API source endpoints are implemented as JAX-WS services. All JAX-WS service implementations defined through soapApi processors are exposed as endpoints under /{ownerId}/ws/{flowId}.

SOAP sources support flow disablement through the management dashboard. Disabled flows will not process messages and will return a status of 503 (Service Unavailable) as long as they are disabled. Even though a flow is disabled, messages will still be pre-processed for validation.

Requests received by the SOAP source endpoint are sent downstream as JSON compliant objects. See the Payload Types documentation for examples. The same payload type is expected by the endpoint when it has to send a response (i.e., the flow was set to RequestResponse).

WSDL Documents

SOAP sources are instantiated with a WSDL document.

WSDL documents must satisfy the following criteria:

  • Version 1.1 (version 2.0 is not supported)

  • Uses SOAP as web service protocol

  • Uses only a one-way or request-response operation type

  • The only supported message style is Document/literal. RPC/encoded, RPC/literal and Document/encoded are not supported

  • Each <message> element has exactly one <part> element

  • Has unique operation names and operation input types (inside each <portType> element)

  • No imports of other documents (like external XSDs)

    Use the SDK’s merge tool to consolidate imported documents.

The processor will throw a ValidationException if one of the following occurs:

  • Parsing of WSDL document fails (malformed document, wrong version, contains imports, etc.)

  • Document doesn’t contain required parts (<message>, <portType>, <binding>, etc.)

  • WSDL doesn’t specify SOAP-related data

After deployment, the WSDL of the service will be available at <service url>?wsdl.

Exchange Properties

A message exchange property named inboundEntityByteSize is added if the entity size (in bytes) is known. The size cannot be determined if chunked transfer encoding is used.