1. Proxies and Flow

soapProxy

Version

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 explorer

Explanation:

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

NameRequiredDefaultDescriptionExamples
$reffalse-Reference a component defined under components.-
hostfalsenot 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
ipfalsenot setIf present, binds the port only on the specified IP. Useful for hosts with multiple IP addresses.127.0.0.1
namefalseBy default, a name will be automatically generated from the target host, port, etc.The name as shown in the Admin Console.-
portfalse80The port Membrane listens on for incoming connections.8080
portNamefalse---
serviceNamefalse---
wsdltrue-The WSDL of the SOAP service.http://predic8.de/my.wsdl or file:my.wsdl
wsdlHttpClientConfigfalse---

Child Structure

ElementCardinalityDescription
flow0..*
path0..1If set, Membrane will only consider this rule, if the path of incoming HTTP requests matches. {@link Path} supports starts-with and regex matching.
ssl0..1Configures inbound or outbound SSL connections.
target0..1The 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.