Retrieving addresses from SOAP 1.1 and SOAP 1.2 endpoints

The legacy behavior of WSRR versions before V8.5 was to treat SOAP 1.1 and SOAP 1.2 endpoints differently from one another.

With WSRR V8.5, the handling of SOAP 1.2 endpoints has changed. If you are running both queries defined here, you might see duplicate entries. Consider the possibility of duplicates when running these queries.

A SOAP 1.1 endpoint address can be found on a SOAPAddress object that is contained by the port object, which is itself contained by the WSDLService object.

The following example shows a Web Service endpoint defined using a SOAP 1.1 address:
<wsdl:definitions ... xmlns:soap11="http://schemas.xmlsoap.org/wsdl/soap/" ... >

...

<wsdl:service name="MySoapService">
  <wsdl:port binding="intf:MySoapServiceBinding" name="MySoapServicePort">
    <soap11:address location="http://localhost:9080/web/services/MySoapService"/>
  </wsdl:port>
</wsdl:service> 
The actual address location is the value of the "address" property on the SOAPAddress object. The following REST query can be used to retrieve the location attribute of the address element:
http://host:port/WSRR/8.5/Metadata/XML/PropertyQuery?query=/WSRR/WSDLService[@name='MySoapService']/ports/SOAPAddress&p1=location
A different method was previously used for SOAP 1.2 endpoints. These endpoints are exposed using WSDL extension elements. ExtensionLogicalObject objects are created for any extension elements within a WSDL document. The following example shows a Web Service endpoint defined with a SOAP 1.2 address:
<wsdl:definitions ... xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" ... >

...

<wsdl:service name="MySoapService">
  <wsdl:port binding="intf:MySoapServiceBinding" name="MySoapServicePort">
    <soap12:address location="http://localhost:9080/web/services/MySoapService"/>
  </wsdl:port>
</wsdl:service>
The following REST query can be used to retrieve the location attribute of the address element.
http://host:port/WSRR/8.5/Metadata/XML/PropertyQuery?query=/WSRR/WSDLService[@name='MySoapService']/ports/extensions&p1=address_location