Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
STP Toolbox WSDL
Contents
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.
Here is a small list existing tools working with WSDLs. This list is not exhaustive. Feel free to complete it.
- wsdl4j
- wsdl4j is a WSDL parser for WSDL 1.1.
- Handle parsing and writing.
- Link: http://sourceforge.net/projects/wsdl4j
- 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
- A new OW2 project to manipulate WSDL 1.1 and 2.0.
- Provides a java2wsdl library.
- Link: http://easywsdl.ow2.org/
- Apache CXF
- Provides wsdl2java and java2wsdl libraries.
- They can be called from Java code (=> dependency), ANT tasks and Maven.
- Handles JAX-B binding and WSDL 1.1.
- Links:
- Apache Axis
- Provides wsdl2java and java2wsdl libraries.
- Axis databinding and WSDL 1.1.
- Link: http://ws.apache.org/axis/
- Provides wsdl2java and java2wsdl libraries.
- 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/
- Eclipse WTP
- Eclipse WTP provides a WSDL editor, wizards and a "front-end" for Axis.
- Also uses Axis2.
- Links:
- Eclipse WTP Incubator
- The former Service Creation from STP has now moved in the WTP incubator.
- It deals with JAX-WS. So it must have things related to WSDLs.
- Links:
- The former Service Creation from STP has now moved in the WTP incubator.
- 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.