A Client when obtaining A WSDL source from API Gateway using ?WSDL interface will be presented with unprotected or internal links to WSDL and Schema files.
This is a known issue in the product.
The Gateway provides the capability to dynamically modify the URL links in the WSDL so that the Gateway Host will offer up these files. This approach will help mask the back-end server host name and eliminate possible connection issues that may arise due to firewalls and/or routing tables. The change will involve modifying a cluster-wide property "service.wsdlDependenciesEnabled" through the Policy Manager.
Steps to modify the Cluster-Wide Property
1) Open the Policy Manager as an administrator
2) Click on Tasks -> Manage Cluster-Wide Properties
3) Click Add from the right side of the window
4) Find the property "service.wsdlDependenciesEnabled" and change the value to true from false
5) Click OK to save
6) Change will take effect within 20-30 seconds and will not require a restart of the Gateway.
Original WSDL
<wsdl:definitions targetNamespace="http://warehouse.acme.com/ws" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tns="http://warehouse.acme.com/ws" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:import namespace="http://warehouse.acme.com/ws" schemaLocation="http://internal.example.com/schema/warehouse_schema.xsd"></s:import>
</wsdl:types>
........
<wsdl:port binding="tns:WarehouseSoap" name="WarehouseSoap">
<soap:address location="http://internal.example.com/ACMEWarehouseWS/Service1.asmx"/>
</wsdl:port>
<wsdl:port binding="tns:WarehouseSoap12" name="WarehouseSoap12">
<soap12:address location="http://internal.example.com/ACMEWarehouseWS/Service1.asmx"/>
</wsdl:port>
Dynamic WSDL with Gateway Hostname and URL changes
<wsdl:definitions targetNamespace="http://warehouse.acme.com/ws" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:tns="http://warehouse.acme.com/ws" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:import namespace="http://warehouse.acme.com/ws" schemaLocation="http://GatewayHostName.exanple.com:8080/ssg/wsdl/warehouse_schema.xsd?serviceoid=78151682&servdocoid=78807041"></s:import>
</wsdl:types>
......
<wsdl:port binding="tns:WarehouseSoap" name="WarehouseSoap">
<soap:address location="http://GatewayHostName.example.com/ACMEWarehouseWS/Service1.asmx"/>
</wsdl:port>
<wsdl:port binding="tns:WarehouseSoap12" name="WarehouseSoap12">
<soap12:address location="http://GatewayHostName.example.com/ACMEWarehouseWS/Service1.asmx"/>
</wsdl:port>