views:

128

answers:

2

Hi everybody,

I am building a system in Java/Groovy that involves dynamic invocation of Web services. I use JAX-WS to invoke a service with a WSDL 1.1 interface, but I could not find any helpful information about how one would go about to implement DII for WSDL 2.0 descriptions.

Could anyone of you point me in the right direction about dynamic invocation for Web services with WSDL 2.0 interfaces?

Thanks in advance, moxn

PS: This post on a mailing list suggests that JAX-WS does not support WSDL 2.0. What other options do I have then? Does maybe Apache CXF come with support for WSDL 2.0?

EDIT: I just tried to dynamically invoke a WSDL 2.0 Web service with JAX-WS but got the WSDL exception faultCode=INVALID_WSDL: Expected element '{http://schemas.xmlsoap.org/wsdl/}definitions'. Looks like JAX-WS DII does really not work with WSDL 2.0.

+1  A: 

Apache CXF only support wsdl 1.1, but WSo2 has support for wsdl 2.0 and might have what you are looking for. It uses Axis 2 i believe.

stevebot
Hmm, apparently is AXIOM the preferred way to create dynamic invocations of WSDL 2.0 services in Axis 2. But it doesn't look as straightforward as the DII support in JAX-WS :(
moxn
+1  A: 

I have not tried, but Axis 2.0 claims that WSDL 2.0 is supported (on the main page).

So if you use XML Mapping tools compatible with the Axis2 API, it should work. Here are some compatible XML Mapping tools :

Note: Apache-CXF does not support WSDL 2.0.

Benoit Courtine
Thanks for anwering. Axis 2.0 does indeed support WSDL 2.0. But if I'm not mistaken are ADB and XmlBeans used only to create Stubs/Proxies from WSDL or XSD files, which is unfortunately not what I need. Or did I miss something?
moxn
Yes, they are "XML Mappers" usually used with Axis2. After another analyse of theses APIs, they don't generate theses mapping "on the fly".
Benoit Courtine