Show Table of Contents
4.2. Deploy the Apache CXF Example
Overview
This tutorial takes a standard Apache CXF example (the
wsdl_first example) and shows you how to deploy it into a Web server, by packaging the application as a WAR. In this example, the Web service is implemented by binding the service to a Java class with the JAX-WS mapping.
Prerequisites
The following prerequisites are needed to build and run this example:
- Either of the following Web servers are installed:
- JBoss Web Server, or
- JBoss Enterprise Application Platform
- Java version 1.7 or later is installed.
- Apache Maven 3.0.0 or later is installed.
- Maven is configured to access the JBoss Fuse repositories, as described in Section 3.1, “Preparing to use Maven”.
- You have access to the Internet, so that Maven can download dependencies from remote repositories.
Install Apache CXF
To obtain the code for the
wsdl_first example, you need to install the Apache CXF kit, apache-cxf-3.0.4.redhat-621084.zip, provided in the extras/ directory of the JBoss Fuse installation.
Install the Apache CXF kit as follows:
- Find the Apache CXF kit at the following location:
InstallDir/extras/apache-cxf-3.0.4.redhat-621084.zip
- Using a suitable archive utility on your platform, unzip the
apache-cxf-3.0.4.redhat-621084.zipfile and extract it to a convenient location,CXFInstallDir.
The wsdl_first example
The
wsdl_first example is located under the following sub-directory of the Apache CXF installation:
CXFInstallDir/samples/wsdl_first/
Build and run the example
To build and run the
wsdl_first example, perform the following steps:
- Using your favorite text editor, open the
CustomerService.wsdlfile, which can be found in the following location in thewsdl_firstproject:wsdl_first/src/main/resources/CustomerService.wsdl
Edit thesoap:addresselement in the WSDL contract, removing comments around the element labeledstandalone Tomcat deploymentand inserting comments around the element labeledembedded deployment. When you are finished editing, thesoap:addresselement should be look as follows:<?xml version="1.0" encoding="UTF-8"?> ... <wsdl:definitions name="CustomerServiceService" targetNamespace="http://customerservice.example.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://customerservice.example.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"> ... <wsdl:service name="CustomerServiceService"> <wsdl:port name="CustomerServicePort" binding="tns:CustomerServiceServiceSoapBinding"> <!-- embedded deployment --> <!--soap:address location="http://localhost:9090/CustomerServicePort"/--> <!-- standalone Tomcat deployment --> <soap:address location="http://localhost:8080/wsdl_first/services/CustomerServicePort"/> </wsdl:port> </wsdl:service> </wsdl:definitions> - Build the
wsdl_firstexample using Maven. Change directory to theCXFInstallDir/samples/wsdl_firstdirectory, open a command prompt, and enter the following command at the command line:mvn clean package
If this command executes successfully, you should be able to find the WAR file,wsdl_first.war, under thewsdl_first/targetsub-directory. - Make sure that the Web server is already running (a simple way to test this is to enter the URL,
http://localhost:8080, into your browser). If you need to start the Web server, you can typically do this from the command line. The command to start the Web server depends on the particular product you are using, as follows:- JBoss Web Server (WS)—open a new command prompt and execute the
startup.shscript from thetomcat8/bin/directory (or thetomcat7/bin/directory, as appropriate). For more details about how to configure and launch the Web server, see the Installation Guide from the JBoss Web Server library. - JBoss Enterprise Application Platform (EAP)—for a standalone instance, open a new command prompt and execute the
bin/standalone.shscript. For more details about how to configure and launch the EAP, see the Administration and Configuration Guide from the JBoss Enterprise Application Platform library.
- Deploy the
wsdl_firstexample to the running Web server. Manually copy thewsdl_first.warWAR file from thewsdl_first/targetdirectory to the Web server's deployment directory, as follows:- JBoss Web Server (WS)—copy the
wsdl_first.warWAR file to thetomcat8/webappsdirectory (ortomcat7/webappsdirectory, as appropriate). - JBoss Enterprise Application Platform (EAP)—copy the
wsdl_first.warWAR file to thestandalone/deploymentsdirectory.
- Use a Web browser to query the WSDL contract from the newly deployed Web service. Navigate to the following URL in your browser:
http://localhost:8080/wsdl_first/services/CustomerServicePort?wsdl
NoteThis step might not work in the Safari browser. - Run the test client against the deployed Web service. Change directory to the
CXFInstallDir/samples/wsdl_firstdirectory, open a command prompt, and enter the following command at the command line:mvn -Pclient
If the client runs successfully, you should see some output like the following in your command window:... Sending request for customers named Smith Response received Did not find any matching customer for name=None NoSuchCustomer exception was received as expected All calls were successful

Where did the comment section go?
Red Hat's documentation publication system recently went through an upgrade to enable speedier, more mobile-friendly content. We decided to re-evaluate our commenting platform to ensure that it meets your expectations and serves as an optimal feedback mechanism. During this redesign, we invite your input on providing feedback on Red Hat documentation via the discussion platform.