The key object in a WS client is the WS client proxy object,
which enables you to access the remote Web service by invoking
methods on the SEI. The proxy object itself can easily be
instantiated using the jaxws:client element in
Spring XML.
The code presented in this chapter is taken from the following demonstration:
DemoDir/src/fuse-webinars/cxf-webinars/customer-ws-clientFor details of how to download and install the demonstration code, see Demonstration Code for Camel/CXF
The WSDL contract is a platform-neutral and language-neutral description of the Web service interface. It contains all of the metadata that a client needs to find a Web service and invoke its operations. You can generate Java stub code from the WSDL contract, which provides an API that makes it easy to invoke the remote WSDL operations.
The most important piece of the generated stub code is the SEI, which is an ordinary Java interface that represents the Web service interface in the Java language.
The WS client proxy is an object that converts Java method invocations to remote procedure calls, sending and receiving messages to a remote instance of the Web service across the network. The methods of the proxy are exposed through the SEI.
![]() | Note |
|---|---|
The proxy type is generated dynamically by Apache CXF at run time. That is, their is no class in the stub code that corresponds to the implementation of the proxy (the only relevant entity is the SEI, which defines the proxy's interface). |
To take a specific example, consider the
customer-ws-client demonstration, which is
available from the following location:
DemoDir/src/fuse-webinars/cxf-webinars/customer-ws-clientFigure 3 shows an overview of the files required to implement and build the WS client.
To implement and build the sample WS client shown in Figure 3, starting from scratch, you would perform the following steps:
Obtain a copy of the WSDL contract.
Generate the Java stub code from the WSDL contract using a WSDL-to-Java converter,
ws2java. This gives you the SEI,CustomerService, and its related classes, such asCustomer.Implement the main client class,
ClientInvoker, which invokes the Web service operations. In this class define a bean property of type,CustomerService, so that the client class can receive a reference to the WS client proxy by property injection.In a Spring XML file, instantiate the WS client proxy and inject it into the main client class,
ClientInvoker.






![[Note]](imagesdb/note.gif)



