The SOAP Component provides the SOAP Web Services work opportunity within a open integration hub flow.
As an integration platform, open integration hub should has an opportunity to invoke SOAP Web services over HTTP.
SOAP component completeness matrix
Find and select SOAP component in the component repository
Create new or select existing credentials
Specify WSDL URL, then choose binding and operation consecutively. The order matters!
Configure an input data and click "Continue"
Retrieve sample or add sample manually
The platform supports next SOAP protocol versions:
- SOAP 1.1
- SOAP 1.2
Component supports next wsdl styles:
- RPC/Literal
- Document/Encoded
- Document/Literal
EIO_REQUIRED_RAM_MB - recommended value of allocated memory is 2048MB
Call action supports next authorization type:
- No Auth
- Basic Auth
Username for Basic authorization header in the SOAP request
Password for Basic authorization header in the SOAP request
NOTE: Error would not be thrown on invalid credentials, as credenteals does not contain WSDL url. In case of invalid credentials error expected on sample retrieve step: Unexprected reponse from server satus code: 401 Anunthorized
Webhook that validates input body over WSDL.
- 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.
- Validation - If
Enabled
validate the SOAP Body over wsdl, ifDisabled
does not validate a SOAP Input Body
- WSDL URI -
http://www.dneonline.com/calculator.asmx?wsdl
- 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"
}
}
- Namespaces ignored and SOAP Body with 2 tags that have the same name but in different namespaces would be invalid
- SOAP Headers not supported yet
- Retrieve Sample does not represent actual behaviour of component
Makes a call to SOAP service over HTTP using public WSDL URL. Call action supports Basic Authorization, choose Basic Authorization type in credentials and provide credentials for WSDL.
- 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 - Timeout period in milliseconds (1-1140000) while component waiting for server response. Defaults to 60000 (60 sec).
A SOAP fault is used to carry error information within a SOAP message. The component handles SOAP faults and emits platform exception in this case. SOAP Fault should comply with the W3C SOAP Fault standard.
Example of the SOAP 1.1 Fault:
{
"Fault": {
"faultcode": "S:Server",
"faultstring": "Server error java.lang.NullPointerException",
"faultactor": null
}
}
Example of the SOAP 1.2 Fault:
{
"Fault": {
"faultcode": "S:Server",
"reason": "Server error java.lang.NullPointerException"
}
}
The component does not have static input json schema as it is dynamically generated for every wsdl/binding/operation specified in the process of configuration the component input fields. Apache Axis2 and FasterXML JsonSchemaGenerator tools are used by the component internally to generate an input metadata. You can refer these tools documentation in order to get deeper understanding about the product.
Output json schema is generated dynamically the same as for the input (see above).
You should specify input fields exactly in the order below. You'll get an error otherwise.
- WSDL URI
- Binding
- Operation
Wraps and returns input data as SOAP response by provided SOAP metadata
- 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.
The component does not have static input json schema as it is dynamically generated for every wsdl/binding/operation specified in the process of configuration the component input fields. Apache Axis2 and FasterXML JsonSchemaGenerator tools are used by the component internally to generate an input metadata. You can refer these tools documentation in order to get deeper understanding about the product.
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>
The following are limitations of this connector:
- 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 how many web services, in production use, work only with SOAP encoded messages. However there is a tendency to move away from RPC/encoded towards Document/literal. This is so, because 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 now. This means that WSDL containing external XSD schemas will not work in this version of the component.
- WS-Security header isn`t supported.
- WS-Addressing isn`t 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.
- Component does not support multipart format of message in the SOAP request element. Only first part of request element will be processed in the current component version.
- 'Emit SOAP Faults Instead of Throwing an Error' feature of the 'CallAction' action was not fully tested against all the possible SOAP faults.