Swordfish Documentation: Generating Dynamic WSDL

From Eclipsepedia

Revision as of 04:03, 25 June 2009 by Anne.aloysious.sopera.de (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Generating Dynamic WSDL

This section contains instructions on implementing the dynamic WSDL generation feature.

Prerequisites

Eclipse Galileo M7 build or later. The examples described here are based on Eclipse Galileo M7.

About Dynamic WSDL Generation

This feature allows users to access dynamically generated WSDLs for JAX-WS endpoints deployed within the Swordfish.
Consider this example:
The jaxws endpoint is deployed with the descriptor:

 <jaxws:endpoint id="bookingService"
	                implementor="org.eclipse.swordfish.samples.cxf.BookingServiceImpl"
	                address="nmr:BookingService"/> 

The http endpoint is used to access the jax-ws service externally:

   <http:endpoint                  
                 endpoint="httpConsumerEndpoint"                 
                 service="httpConsumerEndpoint"
                 targetService="swordfishCxf:BookingServiceImpl"
                 soap="true"
                 role="consumer"                  
                 locationURI="http://0.0.0.0:8192/cxfsample/"
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out" />
 

The HTTP endpoint points to swordfishCxf:BookingServiceImpl service and it is managed and deployed by the JBI ServiceMix HTTP binding component. The problem is that there is no default mechanism to access the dynamically generated booking service WSDL document via the HTTP Endpoint facilities. The org.eclipse.swordfish.plugins.ws.wsdlgenerator project was created to solve these partictular problems.
The project:

  1. Tracks all deployed HTTP endpoints
  2. Searches for the targeted JAX-WS services.
    NOTE: The HTTP endpoint's deployment descriptor should contain targetService or targetEndpoint or targetInterface attributes, otherwise the WSDL generator will not be able the find the corresponding JAX-WS service
  3. Generates the WSDL for the service and injects it in the HTTP endpoint.

To leverage the use of the Swordfish Dynamic WSDL Generation feature, the org.eclipse.swordfish.plugins.ws.wsdlgenerator project should be added to the target platform. To access the generated WSDL document for the HTTP endpoint just add the "?wsdl" to the locationURI. For example, httpConsumerEndpoint publishes its wsdl document to the address http://localhost:8192/cxfsample/?wsdl


Swordfish Documentation Home
Swordfish Wiki Home