How to create a flow that implements operation(s) listed in WSDL?

I am quite new to webMethods, so maybe the question is not very intelligent :slight_smile:
The problem is that I want to implement webservice that follows existing WSDL description (including input/ output types, operation names, port types…). As far as i understand there is no such functionality that would allow building WS from WSDL in webMethods. So, the question: is there any quick way to develop service and generate WSDL for it in such a way, that generated WSDL is as similar to “target” wsdl, as possible?
Thank you,

WebMethods don’t allow natively to expose web service from given a wsdl. You will have to implement SOAP marshalling and unmarshalling routine in your code SOAPDevGuide.pdf and WebServicesDevGuide.pdf will probably help you a lot. If you already have a wsdl you can create a Web Service Connector with your wsdl and reuse the generated Input/Output document types to expose your services .

Using Developer you can generate a wsdl for any given flow service. However be careful with the generated wsdl structure, may be you will have to review some type definition !



The “WSDL-first” approach that you are taking (or being required to take) is becoming increasingly popular because it focuses initial effort on good XML schema design and interface design without undue regard for the underlying implementation of a Service in the application that provides it.

The approach somewhat depends on what style of SOAP messaging is required by the WSDL.

If the WSDL requires document/literal style messages, each message will be described in the “types” section of the schema or in a separate XML schema included using an “import” statement. By creating a standalone schema from the message definitions in the WSDL, you can create document types in Integration Server for each message.

Those document types (with the extra container node removed) become the inputs and outputs of the Flow services you must create to implement the services described in the WSDL.

After you have created Flow services that accept the request doc types and return the response doc types described in the WSDL, you need to expose them as document / literal web services. You can either create one “wrapper” service for each service to be exposed or create a custom soap processor. Both approaches are described in detail with examples elsewhere in this forum (review the “sticky” posts first).

The default URL for the document/literal soap processor is http://hostname:port/soap/default. A custom soap processor would have the same URL but with a different value instead of “default”.

If your WSDL uses SOAP-RPC style messaging, the job of creating service to implement your service is a bit easier, since you basically create one new service for each operation with inputs.

One technique you might try to easily see the inputs for the services is to use the Web Services Connector wizard in Developer to generate Flow services to consume the services. In the process it will also generate document types that may be a good starting point for implementing those services.

Hope that helps,