cxf-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Steven E. Harris" <...@panix.com>
Subject Why does a JAX-WS client use the WSDL at run time?
Date Wed, 02 May 2007 20:33:43 GMT
I'm trying to understand a big difference in how a Web Service client
works in JAX-WS/CXF versus AXIS2. In AXIS2, the WSDL2Java process
reads a WSDL document and creates a lot of code to create, transport,
and consume messages as directed by the WSDL. After this WSDL2Java
process, the WSDL document is no longer required; it has essentially
been compiled into a set of Java operations that obey the WSDL's
specifications.

In JAX-WS, the WSDL2Java process also creates code, annotated with
details from the motivating WSDL document. I had assumed that these
annotations are used at compile time to generate much of the extra
code we see generated by the AXIS2 WSDL2Java process. Instead, I find
that the generated Service type wants to read a WSDL file in its
constructor (following the call chain along to
org.apache.cxf.wsdl11.WSDLServiceFactory.create() called on by
org.apache.cxf.jaxwsServiceImpl.initializePorts()).

Why does the client need to read the WSDL file at run time? Don't the
annotations and method signatures provide enough information to lock
in the basic operations it must perform? Is there some way to avoid
needing to use the WSDL file at run time?

-- 
Steven E. Harris

Mime
View raw message