Regenerate provider WSD

Is it possible to simply regenerate/refresh the provider WSD of a flow-service when the interface hase changed?
Or do I really need to delete and create it again?

If you talk about a connector, right click on the WSDL and click refresh/reload.
At the end it will delte and create again, but with a single click :smiley:

No, thats on a Consumer WSD. There, when I right-click in Designer I have an option “refresh Web service connectors”. Then it re-reads the WSDL provided by someone else.
I want something similar for a Provider WSD, so it wil regenerate the WSDL it provides for others to consume. But when I right-click the Provider WSD I only see “Publish web services to a UDDI registry”.


You didn’t say what version of the IS you are using but with the 7.x and up, the WSDL is dynamic. If you change the interface, refresh save etc, then the WSDL will show any changes via the WSDL URL.

You talk about designer, so I’m a bit confused now.

Designer 7.2 or Designer 8.0 have a “service development view” which is similar to Developer (does not have ALL the options but almost), then as griffima points out the Provider is dynamic, as soon as you change any parameter from the service the WSDL will be changed.

If you talk about the “Publish web services to UDDI”, this means you have a provider on Designer CAF/Process/Task view and this is different.

It’s like if you create a Java project on Designer (which at the end is a eclipse), and create a Java service with a WSDL. That is aside wM and not related to IS.

Please clarify where does that WSDL come from, and under what view you are using it.


Following on from the issues raised earlier in this thread, I have found a similar problem.

Consider ServiceA has a WSD Provider. Imagine ServiceA has input1 and input2. In Developer 8 I create a WSD Consumer. All fine to this point.

However, if I change the ServiceA (eg add input3), right click on the Connector and select ‘Refresh Web Service Connectors’ it does not show me input3. It still has just input1 and input2.

If I delete the Connector, and re-create it from scratch, it works fine. But that defeats the purpose of the ‘Refresh Web Service Connectors’ option.

We found the problem. When you create a Connector for a WSD, it actually places the entire contents of the WSDL within the NODE.NDF file of the Connector

<Boolean name="attachmentEnabled">false</Boolean>
<number name="mtomThreshold" type="Integer">0</number>
<value name="externalWSDL"><?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="steveProvider" targetNamespace="" xmlns:soapenc="" xmlns:soapjms="" xmlns:http="" xmlns:wsdl="" xmlns:tns="" xmlns:xsd="" xmlns:soap="" xmlns:mime="" xmlns:soap12="">

By manually removing everything in the tag from NODE.NDF, the ‘Refresh’ button then works perfectly. I can add inputs/outputs to ServiceA, refresh the connector and all is good.

My question is: why does wM cache the original WSD? The times you would want to refresh the connector are because the source has changed its inputs/outputs. If the ‘refresh’ always just reads the original version of the WSDL from cache, it will never get those new inputs/outputs.

Confused as to why wM stores this information. Anyone shed some light on it?