Chapter 36. WSDL-First Service Implementation

36.1. WSDL-First Overview

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.

Demonstration location

The code presented in this chapter is taken from the following demonstration:
cxf-webinars-jboss-fuse-6.3/customer-ws-osgi-bundle
For details of how to download and install the demonstration code, see Chapter 34, Demonstration Code for Camel/CXF

WSDL contract

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 36.1, “Building a WSDL-First Web Service” shows an overview of the files required to implement and build the CustomerService Web service using the WSDL-first approach.

Figure 36.1. Building a WSDL-First Web Service

Building a WSDL-First Web Service

Implementing and building the service

To implement and build the WSDL-first example shown in Figure 36.1, “Building a WSDL-First Web Service”, starting from scratch, you would perform the following steps:
  1. Create the WSDL contract.
  2. 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 Customer.
  3. Write the implementation of the SEI, CustomerServiceImpl.
  4. Instantiate the Web service endpoint, by adding the appropriate code to a Spring XML file.