webservice connector to WSDL

Hello

There is a webservice connector already exisitng, which invoke a service (example-service1).
Now it is required that this webservice connector should invoke another service (example-service2).

How to proceed, I donot have the xsd and wsdl.

Is it possible to alter the exisiting webservice connector to invoke service2 and update the namespace in service2.

or
can we extract WSDL from this webservice connector and XSD from docs.

Thanks in advance
Vinod

You will need the WSDL and associated schema definitions in order to know what Service 2 expects you to send along with the endpoint to sent it to. I’m assuming that Service 2 is expecting something different than Service 1.

The web service connector generates doc types and a Flow service to invoke each operation described in a WSDL. If you subsequently added an operation to the WSDL, but lost the WSDL, you can’t use the original doc types and Flow service to invoke the new operation.

If you want to invoke something new, you need either the WDL or an XSD describing the message structures or a large set of sample XML messages to allow you to create your own document types.

The idea that you can guess the message structures of some new operation without someone providing the WSDL or an XSD is absolutely ridiculous. I would insist on being provided the WSDL if the provider is claiming to support web services.

You can’t extract WSDL from a web services connector. It’s just a plain ole Flow.

HTH,

Mark

Hello

Thanks for quick response,

One point I like to add to my question is both service 1 and 2 are same .
Only difference is service 1 connects to production data and service 2 to test data.(I have no access to these two services)

The project is already in production , now it is requred to do some test so I was asked to connect to service 2.

So is it not possible to create another webservice connector from exisitng webservice connector, so that the new webservice connector call service2 ?

Thanks
VInod

One of the weaknesses of the existing web services connector is that the Flow service it generates contains a map statement that hardcodes the soap endpoint address.

As I have written numerous times before, you should never use the default generated code without modifying it to lookup the endpoint address from some properties file and to improve its exception handling for example by placing the pub.client:soapHTTP call in a repeat loop.

A web service connector is a Flow service and only a Flow service. Can you copy and change a Flow service?

Mark

Hello Mcarlson

Thanks

One more point,
Is my below understanding correct.
The webservice connector invokes a remote service using the namespace, (which has to be mentioned in two places one in the wsdl which is used to create webservice connector and second in the universal namespace of remote service.)

Thanks
Vinod

A namespace is not the same thing as a soap endpoint (URL at which the soap server listens for requests).

Namespaces are only used in the WSDL to uniquely identify services and operations. A namespace for a WSDL could be “foo:myOperation” which as you can see is not anything like a URL. The soap endpoint address in that same WSDL might be “http://myIS:5555/soap/default” which would be the address to which the soap request should be posted.

Proper understanding of XML Schema including XML namespaces is a critical prerequisite for developing web services and probably for consuming them.

HTH,

Mark

Hello Mcarlson
then for example:
the address [url]http://myIS:5555/soap/default[/url] will point to an IS and
then the namespace will uniquely identify the flow service in that IS which it has to invoke.

Is this correct ?

Thanks
Vinod