tree: 4e3154c3e1a0afa25937c34a5bd3ecae235e87eb [path history] [tgz]
  2. karaf-soap-example-api/
  3. karaf-soap-example-client/
  4. karaf-soap-example-features/
  5. karaf-soap-example-provider/
  6. pom.xml

Apache Karaf SOAP Example


This example shows how to use JAX-WS to implement a SOAP service.

This example uses blueprint to deal with the jaxws-server and Apache CXF as the implementation of the JAXWS specification.

It implements a BookingService with a SOAP WS implementation.

The “client” bundle uses the BookingService with a SOAP client stub.


  • karaf-soap-example-api is a common bundle containing the Booking POJO and the BookingService interface.
  • karaf-soap-example-provider is a blueprint bundle providing the BookingServiceSoap implementation of the BookingService interface.
  • karaf-soap-example-client is a CXF client to the BookingService SOAP.
  • karaf-soap-example-features provides a Karaf features repository used for the deployment.


The build uses Apache Maven. Simply use:

mvn clean install

Feature and Deployment

On a running Karaf instance, register the features repository using:

karaf@root()> feature:repo-add mvn:org.apache.karaf.examples/karaf-soap-example-features/LATEST/xml

Then, you can install the service provider feature:

karaf@root()> feature:install karaf-soap-example-provider

And the service client feature:

karaf@root()> feature:install karaf-soap-example-client


You can take a look on the WSDL generated for our SOAP WS:


The client feature installs booking:* commands. You can add a new booking using the booking:add command:

karaf@root()> booking:add 1 TEST TEST

The booking:list command displays the list of bookings:

karaf@root()> booking:list
ID | Flight | Customer
1  | TEST   | TEST

These commands use a CXF SOAP WebService client to interact with the Booking WebService.