Symptoms
How to register Web Service endpoint with both URL and WSDL (Web Services Description Language) URL?
Assume you are trying to connect web services to K2 via "web service endpoint" service broker.
In previous versions of "web service endpoint" broker (prior to 4.6.11) it was possible to register an instance with both URL and WSDL-URL ("?wsdl"). With current (latest) version only URL can be entered and "?wsdl" is automatically added by the "Add Service Instance" window/wizard.
If your web services do not show info using WS-Addressing with "?wsdl" you may first point the URL to a web service which explicitly describes that WS-Addressing, and later update the instance to a WSDL URL, but in then the resulting instance will have the WS-Addressing information removed which causes problems for web services which expect WS-Addressing.
The customer wanted to know if there was a fix or workaround for this available.
Diagnoses
If you use the Endpoint WebService broker you register the Service Instance by using only the WSDL URL - i.e. the url ending in "?wsdl". If you anyhow use the Endpoint WCF broker, then you register the Service Instance with 2 URLs - 1 for the WSDL and 1 for the actual service.
In either case, you should be able to register the service instance by using a local WSDL file on the K2 server, and then just specifying the file location (e.g. C: empmyservice.wsdl) in the URL configuration setting of Add Service Instance window.
Additionally there are 2 things to be aware of:
? The WSDL file has to be match the service schema 100% - they cannot be different in any way
? If the WSDL refers to other data contract files (usually XSD), then you will have to copy them to the K2 server too and update their URIs in the WSDL file to point to the local file location.
From an integration best practices perspective, it is recommended that the K2 server discover the WSDL online. The steps above can lead to different issues which will be difficult to troubleshoot.
Resolution
See Diagnosis section.