Language and Page Formatting Options
Chapter 33. WSDL-First Service Implementation
33.1. WSDL-First Overview
If you are familiar with the syntax of WSDL and you want to have ultimate control over the layout and conventions applied to the WSDL contract, you will probably prefer to develop your Web service using the WSDL-first approach. In this approach, you start with the WSDL contract and then use the provided Apache CXF utilities to generate the requisite Java stub files from the WSDL contract.
The code presented in this chapter is taken from the following demonstration:
For details of how to download and install the demonstration code, see Chapter 31, Demonstration Code for Camel/CXF
The WSDL contract is a platform-neutral and language-neutral description of the Web service interface. In the WSDL-first approach, the WSDL contract is the starting point for implementing the Web service. You can use it to generate Java stub code, which provides the basis for implementing the Web service on the server side.
Service Endpoint Interface (SEI)
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 SEI is used in the following ways:
- Base type of the Web service implementation (server side)—you define the Web service by implementing the SEI.
- Proxy type (client side)—on the client side, you use the SEI to invoke operations on the client proxy object.
The CustomerService demonstration
Figure 33.1, “Building a WSDL-First Web Service” shows an overview of the files required to implement and build the
CustomerServiceWeb service using the WSDL-first approach.
Figure 33.1. Building a WSDL-First Web Service
Implementing and building the service
To implement and build the WSDL-first example shown in Figure 33.1, “Building a WSDL-First Web Service”, starting from scratch, you would perform the following steps:
- Create 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 as
- Write the implementation of the SEI,
- Instantiate the Web service endpoint, by adding the appropriate code to a Spring XML file.