Jump to: navigation, search

STP Toolbox WSDL

Use Cases

SCA Tools

Reference and work with any web service (or JBI endpoint) in an SCA application. Meaning that the only thing you have for an SCA reference is a WSDL file. It's all about wsdl2java transformations.
In SCA tools, we are only focused on Java implementations for the moment. So, we need something simple to create the java interfaces from WSDLs, so that our Java implementation can compile.


For SCA, it would be better to not have data-binding elements. That would add dependencies to our implementation and complexity in usage. As an example, if you use JAXB, you have to use the associated factories to create objects. "Real" web services have complex messages in general, not just simple types like string. A developer would prefer makes a "new Bean()" instead of using the JAXB factory to create it. In particular when message beans have a high degree of imbrication.


For the moment, the most simple approach Vincent found with Eclipse for this use case, is using the WTP "create a web service client" wizard, with the "developer" level. It generates the beans and some useless things for SCA, such as the stub, the locator... Then, the user has to manually remove these extra-classes and remove the code parts that depend on Axis (which are "hidden" in the bottom of the beans). Vincent is thinking to make some better front-end solution, relying on WTP and cleaning automatically these classes. The thing is that there are very specific needs in SCA, that did not exist or seemed useless before it.


Ideas of Tools for WSDLs

Some of the following features may already be available in Eclipse WSTP.

Several tools work with WSDL files. But they are either not available in Eclipse, or easy to use (Maven, ANT scripts or code dependencies). Sometimes also, they are just intended for the scope of these projects, while others would be glad to reuse these features.

The idea would be have a grouped tool box for WSDLs.

Here is a list of features that would be nice to have:

  • WSDL parsng and writing: be able to parse and write any WSDL (WSDL 1.1 and 2.0).
  • Wsdl2java: convert WSDL files in Java interfaces and classes. Be able to choose the data-binding and other settings.
  • Java2wsdl: create WSDL files from a Java interface. Be able to define the generation settings.
  • WSDL import: import remote or local WSDL files, with all their dependencies (import also the WSDL related resources - XSDs, other WSDLs...). Possible use case: JBI.
  • WSDL browsing: make a WSDL explorer (provide a nice UI to explore WSDLs). Make WSDLs easy to understand.


Existing WSDL-related tools

Here is a small list existing tools working with WSDLs. This list is not exhaustive. Feel free to complete it.


  • Apache Woden
    • Woden is an Apache project for WSDL 2.0.
    • Can convert WSDL 1.1 to WSDL 2.0.
    • Parsing works. The last time I checked, the writing was not supported.
    • Link: http://ws.apache.org/woden/


  • EasyWSDL




  • Apache Axis2
    • Provides wsdl2java and java2wsdl libraries.
    • Provides a java2wsdl library and can create clients from a WSDL.
    • Has an Eclipse plug-in to use from Eclipse.
    • Covers WSDL 1.1, 2.0.
    • Data-binding: AXIOM, ADB, XML Beans, JiBX.
    • Link: http://ws.apache.org/axis2/




  • BPEL Designer
    • The BPEL Designer provides some tools to easily orchestrate web services and extract WSDL information (in particular for the operation messages).
    • Define XPath conditions from the XML schemas contained in the WSDL.
    • Link: http://www.eclipse.org/bpel/


Possible contributions

  • Wsdl2java & Java2wsdl

EBM WebSourcing has an Eclipse front-end for Apache CXF wsdl2java and java2wsdl libraries. It provides a preference page (to specify the location of the CXF distribution), wizards to make both transformations, and a call generator using ANT classes (no script) to run the library code. There is no code dependency to Apache CXF. It could also be extended to provide a front-end to other similar libraries. Could be contributed to the toolbox.

  • WSDL imports

(Still) EBM WebSourcing can provide a tool to import WSDLs and all their dependencies (XSDs, WSDLs...). Works with WSDL 1.1 and 2.0. Dependency to a simple XML parser (the code can be adapted to any parser). Could be contributed to the toolbox.