Red Hat Training
A Red Hat training course is available for JBoss Enterprise SOA Platform
13.9.18. Using the SOAPProxy Action
A SOAPProxy action is:
- both a producer and consumer of web services.
- all that is required is a property pointing to the external wsdl.
- a way to allow the WSDL to be automatically transformed (via the optional wsdlTransform property.)
- a way to ensure that SOAP is not tied to HTTP. The WSDL is read, and if an HTTP transport is defined, that will be used.
- a way to optionally apply HttpRouter properties as overrides if you are using HTTP.
If the WSDL specifies an HTTP transport, then any of the HttpRouter properties can be applied.
Table 13.35.
Property | Description | Required |
---|---|---|
wsdlTransform |
A <smooks-resource-list> xml config file allowing for flexible wsdl transformation.
| No |
wsdlCharset |
The character set the original wsdl (and imported resources) is encoded in UTF-8. It will be transformed to UTF-8 if it is a supported encoding by the underlying platform.
| No |
endpointUrl |
Example of an HttpRouter property, useful when domain name matching is important for SSL certs.
| No |
file |
Apache Commons HTTPClient properties file, useful when proxying to a web service via SSL.
| No |
clientCredentialsRequired |
Whether the Basic Auth credentials are required to come from the end client, or if the credentials specified inside file can be used instead. Default is "true".
| No |
wsdl |
The original wsdl url whose WS endpoint will get re-written and exposed as new wsdl from the ESB. Depending upon the
<definitions><service><port><soap:address location attribute's protocol (for example "http"), a protocol-specific SOAPProxyTransport implementation is used.
The value can reference a location based on five different schemes:
| Yes |
Example 13.16. Sample Configuration: Basic scenario
<action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"> <property name="wsdl" value="http://host/foo/HelloWorldWS?wsdl"/> </action>
Example 13.17. Sample Configuration: Basic Authentication and SSL
<action name="proxy" class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy"> <property name="wsdl" value="https://host/foo/HelloWorldWS?wsdl"/> <property name="endpointUrl" value="https://host/foo/HelloWorldWS"/> <property name="file" value="/META-INF/httpclient-8443.properties"/> <property name="clientCredentialsRequired" value="true"/> </action>