soapApi
Source processor for exposing SOAP endpoints. Reference to a WSDL specification must be provided.
Properties
Name | Summary |
---|---|
|
Required ID of the WSDL specification following the pattern |
|
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. |
|
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. |
|
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 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 This property is a string on the standard Java Properties format. Each line contains a prefix specification on the format |
|
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 |
|
Optional, descriptive name for the processor. |
|
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 |
|
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. |
|
Whether the incoming payload is available for error processing on failure. Defaults to |
Sub-builders
Name | Summary |
---|---|
Strategy for describing how a processor’s message is logged on the server. |
|
Strategy for archiving payloads. |
|
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
orrequest-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.