5.2. Deploy the Apache Camel CXF Example
Overview
This tutorial takes a standard Camel CXF example (the
camel-example-cxf-tomcat
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 Camel route using the Camel CXF component.
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 2.1, “Preparing to use Maven”.
- You have access to the Internet, so that Maven can download dependencies from remote repositories.
Install Apache Camel
To obtain the code for the
camel-example-cxf-tomcat
example, you need to install the Apache Camel kit, apache-camel-2.15.1.redhat-620133.zip
, provided in the extras/
directory of the JBoss Fuse installation.
Install the Apache Camel kit as follows:
- Find the Apache Camel kit at the following location:
InstallDir/extras/apache-camel-2.15.1.redhat-620133.zip
- Using a suitable archive utility on your platform, unzip the
apache-camel-2.15.1.redhat-620133.zip
file and extract it to a convenient location,CamelInstallDir
.
The camel-example-cxf-tomcat example
The
camel-example-cxf-tomcat
example is located under the following sub-directory of the Apache Camel installation:
CamelInstallDir/examples/camel-example-cxf-tomcat/
Build and run the example
To build and run the
camel-example-cxf-tomcat
example, perform the following steps:
- Build the
camel-example-cxf-tomcat
example using Maven. Change directory to theCamelInstallDir/examples/camel-example-cxf-tomcat/
directory, 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,camel-example-cxf-tomcat.war
, under thecamel-example-cxf-tomcat/target
sub-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.sh
script from thetomcat8/bin/
directory (or thetomcat7/bin/
directory, as appropriate). For more details about how to configure and launch the WS, 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.sh
script. 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
camel-example-cxf-tomcat
example to the running Web server. Manually copy thecamel-example-cxf-tomcat.war
WAR file from thecamel-example-cxf-tomcat/target
directory to the Web server's deployment directory, as follows:- JBoss Web Server (WS)—copy the
camel-example-cxf-tomcat.war
WAR file to thetomcat8/webapps
directory (ortomcat7/webapps
directory, as appropriate). - JBoss Enterprise Application Platform (EAP)—copy the
camel-example-cxf-tomcat.war
WAR file to thestandalone/deployments
directory.
- 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/camel-example-cxf-tomcat/webservices/incident?wsdl
NoteThis step might not work in the Safari browser. - Run the test client against the deployed Web service. Change directory to the
CamelInstallDir/examples/camel-example-cxf-tomcat/
directory, open a command prompt, and enter the following command at the command line:mvn exec:java
If the client runs successfully, you should see some output like the following in your command window:... [INFO] --- exec-maven-plugin:1.1.1:java (default-cli) @ camel-example-cxf-tomcat --- 2013-07-24 13:59:16,829 [teClient.main()] INFO ReflectionServiceFactoryBean - Creating Service {http://incident.cxf.example.camel.apache.org/}IncidentService from class org.apache.camel.example.cxf.incident.IncidentService OK;123 IN PROGRESS [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 7.445s [INFO] Finished at: Wed Jul 24 13:59:17 CEST 2013 [INFO] Final Memory: 10M/81M [INFO] ------------------------------------------------------------------------