A SOAP proxy automatically configures itself using a WSDL description. It reads the WSDL to extract:
- The <soap:address/> for target, port, and path.The proxy sits in front of a SOAP Web Service, masking it while providing the same interface to clients as the target server. The proxy serves the WSDL to gateway clients, with the WSDL address pointing to the proxy instead of the backend. This ensures that client requests using the WSDL are routed through the API Gateway.
Additionally, the SOAP proxy: - Can validate requests against the WSDL - Provides a simple service explorerExplanation:
If the WSDL specified by the wsdl attribute is unavailable at startup, the <soapProxy> becomes inactive. Reinitialization can be triggered via the admin console or automatically by the {@link Router}, which periodically attempts to restore the proxy.Syntax
soapProxy:
wsdl: <string> # required
'$ref': <string>
flow:
- <flow>
host: <string>
ip: <string>
name: <string>
path: {}
port: <number>
portName: <string>
serviceName: <string>
ssl: {}
target: {}
wsdlHttpClientConfig: <string>
soapProxy:
wsdl: <string> # required
'$ref': <string>
flow:
- <flow>
host: <string>
ip: <string>
name: <string>
path: {}
port: <number>
portName: <string>
serviceName: <string>
ssl: {}
target: {}
wsdlHttpClientConfig: <string>
Sample
<soapProxy wsdl="http://www.thomas-bayer.com/axis2/services/BLZService?wsdl">
<soapStackTraceFilter />
<validator />
</soapProxy><soapProxy wsdl="http://www.thomas-bayer.com/axis2/services/BLZService?wsdl"> <soapStackTraceFilter /> <validator /> </soapProxy>
Attributes
| Name | Required | Default | Description | Examples |
|---|---|---|---|---|
| $ref | false | - | Reference a component defined under components. | - |
| host | false | not set | A space separated list of hostnames. If set, Membrane will only consider this rule, if the "Host" header of incoming HTTP requests matches one of the hostnames. The asterisk '*' can be used for basic globbing (to match any number, including zero, characters). | predic8.de *.predic8.de |
| ip | false | not set | If present, binds the port only on the specified IP. Useful for hosts with multiple IP addresses. | 127.0.0.1 |
| name | false | By default, a name will be automatically generated from the target host, port, etc. | The name as shown in the Admin Console. | - |
| port | false | 80 | The port Membrane listens on for incoming connections. | 8080 |
| portName | false | - | - | - |
| serviceName | false | - | - | - |
| wsdl | true | - | The WSDL of the SOAP service. | http://predic8.de/my.wsdl or file:my.wsdl |
| wsdlHttpClientConfig | false | - | - | - |
Child Structure
| Element | Cardinality | Description |
|---|---|---|
| flow | 0..* | |
| path | 0..1 | If set, Membrane will only consider this rule, if the path of incoming HTTP requests matches. {@link Path} supports starts-with and regex matching. |
| ssl | 0..1 | Configures inbound or outbound SSL connections. |
| target | 0..1 | The destination where the service proxy will send messages to. Use the target element if you want to send the messages to a target. Supports dynamic destinations through expressions. |
Can be used in
No parent elements.