SOAP
The SOAP Component provides the SOAP Web Services work opportunity within a flow. As an integration platform, Integrations has an opportunity to invoke SOAP Web services over HTTP.
Requirements
The platform supports the following SOAP protocol versions:
-
SOAP 1.1
-
SOAP 1.2
The component supports the following WSDL styles:
-
RPC/Literal
-
Document/Encoded
-
Document/Literal
Credentials
- Type
-
You can select the following authorization type:
- No Auth
- Basic Auth
- Username
-
A username for the basic authorization header in the SOAP request.
- Password
-
A password for the basic authorization header in the SOAP request.
- API Key Auth
-
This is not supported yet.
No error would not be thrown for invalid credentials, as the credentials do not contain WSDL URL. In case of invalid credentials error expected on sample retrieve step:
Unexpected response from server status code: 401 Anunthorized
Usage
-
Find and select the SOAP component in the component repository:
-
Create new or select existing credentials:
-
Specify the WSDL URL and choose a binding and an operation in that order. Then configure an input data and click Continue:
-
Retrieve sample or add sample manually:
Triggers
The SOAP component has one trigger.
Receive SOAP Request
Webhook that validates input body over WSDL. image::soap/soap-reply.png[SOAP reply trigger]
Input fields
- WSDL URI
-
The public URL address of the WSDL.
- Binding
-
One of the bindings available and described in the WSDL, which you want to use for a SOAP call.
- Operation
-
One of the operations available for the binding selected above.
- Validation
-
If set to
Enabled
, this validates the SOAP Body over WSDL.
Usage example
- WSDL UR
- Binding
-
CalculatorSoap12
- Operation
-
Add
- Validation
-
Enabled
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Add xmlns="http://tempuri.org/">
<intA>1</intA>
<intB>1</intB>
</Add>
</soap:Body>
</soap:Envelope>
{
"Add": {
"intA": "1",
"intB": "1"
}
}
Actions
Call
Makes a call to SOAP service over HTTP using public WSDL URL.
The Call action supports Basic Authorization:
-
Choose Basic Authorization in credentials.
-
Provide the credentials for WSDL.
Input fields
- WSDL URI
-
Public URL address of the WSDL.
- Binding
-
One of the bindings available and described in the WSDL, which you want to use for a SOAP call.
- Operation
-
One of the operations available for the binding you have selected above.
- Request timeout
-
The timeout period in milliseconds (
1
-1140000
) while the component waiting for server response. Defaults to60000
(60 sec).
SOAP Fault
A SOAP fault is used to carry error information within a SOAP message. The component handles SOAP faults and emits a platform exception in this case.
SOAP Fault should comply with the W3C SOAP Fault standard.
{
"Fault": {
"faultcode": "S:Server",
"faultstring": "Server error java.lang.NullPointerException",
"faultactor": null
}
}
{
"Fault": {
"faultcode": "S:Server",
"reason": "Server error java.lang.NullPointerException"
}
}
Input JSON schema
The component does not have static input JSON schema as it is dynamically generated for every WSDL/binding/operation specified during the configuration of the component input fields.
Apache Axis2 and FasterXML JsonSchemaGenerator tools are used by the component internally to generate input metadata. Read the documentation linked above for more information about these tools.
SOAP reply
Wraps and returns input data as SOAP response by provided SOAP metadata:
Input fields
- WSDL URI
-
Public URL address of the WSDL.
- Binding
-
One of the bindings available and described in the WSDL, which you want to use for a SOAP call.
- Operation
-
One of the operations available for the binding you have selected above.
Input JSON schema
The component does not have static input JSON schema as it is dynamically generated for every WSDL/binding/operation specified during the configuration of the component input fields.
Apache Axis2 and FasterXML JsonSchemaGenerator tools are used by the component internally to generate input metadata. Read the documentation linked above for more information about these tools.
Output JSON schema
Output JSON schema is generated dynamically the same as for the input (see above).
{
"AddResponse": {
"AddResult": 3
}
}
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<AddResponse xmlns="http://example.org/">
<AddResult>3</AddResult>
</AddResponse>
</soap:Body>
</soap:Envelope>
Known limitations
Here are the limitations of this component:
-
RPC/SOAP-Encoded styles are not supported.
-
All major frameworks for web services support Document/literal messages. Most of the popular frameworks also have some support for RPC/encoded, so developers can still use it to create encoded-only services. As a result, it is hard to estimate the number of web services that work only with SOAP-encoded messages. However, there is a tendency to move away from RPC/encoded towards Document/literal. Since the SOAP encoding specification does not guarantee 100% interoperability and there are vendor deviations in the implementation of RPC/encoded.
-
-
Only self-containing WSDLs are supported. This means that WSDL containing external XSD schemas will not work in this version of the component.
-
WS-Security header is not supported.
-
WS-Addressing is not supported.
-
Custom SOAP headers can not be added.
-
The WSDL and associated schemas must be accessible via a publicly accessible URL. File upload of the WSDL and/or XSD schemas is not supported.
-
The component does not support a multi-part format of messages in the SOAP request element. Only the first part of the request element will be processed in the current component version.
-
Emit SOAP Faults Instead of Throwing an Error
feature of the 'CallAction' action has not been fully tested against all the possible SOAP faults.