Downloading WSDL Documents
There are several ways to retrieve a WSDL document. The simplest method is to use this URI:
gateway
There are several ways to retrieve a WSDL document. The simplest method is to use this URI:
http://<Gateway_machine>:8080/ssg/wsdl
Where
"<Gateway_machine>"
is the Gateway host name (for example, "gateway.mycompany.com"). This displays a list of all WSDL documents that correspond to anonymous services published on the API Gateway
.To see a list of WSDL documents on a protected service, use this URI:
https://<Gateway_machine>:8443/ssg/wsdl?anon=false
Or:
https://<Gateway_machine>:8443/ssg/wsil?anon=false
Enter the login credentials for the
API Gateway
when prompted. (1) WSDL documents for secure services are only provided over SSL. (2) By default, you cannot download WSDL and policy documents from a disabled service. You can override this behavior using the
service.disabledDownloads
cluster property.Returning WSDLs for a Specific Service
To return WSDL documents for a specific service, append the service entity ID to the URI:
http://<Gateway_machine>:8080/ssg/wsdl?serviceoid=1234567
If the service does not allow anonymous access, use this URI:
https://<Gateway_machine>:8443/ssg/wsdl?serviceoid=1234567
Using the service entity ID is the most reliable mechanism for retrieving a specific WSDL for a service, as more than one service can have the same URI, SOAPAction, or namespace. If you do not know the service entity ID, you can still use one of the following methods to attempt to retrieve the WSDL.
If you attempt a download from a machine that does not qualify for a pass-through, the WSDL download may fail. For more information, see "Configuring Gateway Passthrough" under Download WSDL and Policy Documents.
WS Policy Attachments
When an Enforce WS-Security Policy Compliance Assertion is present in the policy when the WSDL document is downloaded, the WS-Security Policy translation of the services policy is appended to the WSDL document. If the original WSDL contains a WS-SP policy, it is removed.
Retrieve WSDL by Resolution URI
You can retrieve a WSDL by specifying the resolution URI in the URI:
http://<Gateway_machine>:8080/ssg/wsdl?uri=/xml/foo
You can also retrieve the WSDL by appending "?wsdl" to the services resolution path. Such requests are translated into requests for the WSDL proxy; for example:
http://<Gateway_machine>/myservice?wsdl
This would be translated into the equivalent request:
http://<Gateway_machine>/ssg/wsdl?uri=/myservice
When the WSDL does not permit anonymous access, use "?wsdl&anon=false" to force an authentication challenge.
(1) The "?wsdl" suffix works only when If there is a single web service published at any given path. (2) Downloading the WSDL using the "?wsdl" suffix may be disabled using the
service.wsdlQueryEnabled
cluster property.The
API Gateway
responds as follows:Scenario | Result |
One service resolves at specified URI | WSDL for that service is returned |
No service resolves at specified URI | "404 Error - File Not Found" is returned |
Multiple services resolve at specified URI2 | Ambiguous; error is returned |
Case Sensitivity in URI
By default, the services are matched in a case sensitive manner. If case sensitivity for service resolution is disabled, then services are matched accordingly.
For example, consider the following URIs for requesting a WSDL:
http://localhost:8080/ssg/wsdl?uri=/warehousehttp://localhost:8080/warehouse?wsdl
In the preceding examples, the value "warehouse" is compared case sensitively or case insensitively, depending on the resolution settings.
For information on case sensitivity during service resolution, see Manage Service Resolution.
Retrieve WSDL by Namespace
You can retrieve a WSDL by specifying the namespace in the URI:
http://<Gateway_machine>:8080/ssg/wsdl?ns=http://acme.com/ns/ws/foo
This namespace, sometimes called the SOAP payload namespace URI, corresponds to a namespace used by the child elements under the Body element of the SOAP envelope.
The
API Gateway
responds as follows:Scenario | Result |
Only one service uses the namespace | WSDL for that service is returned |
No service use the namespace | "404 Error - File Not Found" is returned |
Multiple services use the namespace | Ambiguous; error is returned |
Retrieve WSDL by SOAPAction
You can retrieve a WSDL by specifying the SOAPAction in the URI:
http://<Gateway_machine>:8080/ssg/wsdl?soapaction=http://acme.com/ws/action/foo
The
API Gateway
responds as follows:Scenario | Result |
Only one service uses the SOAPAction | WSDL for that service is returned |
No service use the SOAPAction | "404 Error - File Not Found" is returned |
Multiple services use the SOAPAction | Ambiguous; error is returned |
Retrieve WSDL Using a Combination
You can further refine the WSDL to retrieve by using a combination of the previous proxies. For example:
http://<Gateway_machine>:8080/ssg/wsdl?ns=namespace1&uri=/xml/foo
The WSDL for that service is returned if found, otherwise an error is returned.
If a
serviceoid
is specified, that takes precedence over any other parameter.