Use Apache Maven to build the demonstrations. Open a new command prompt, change
directory to ,
and enter the following command:DemoDir/src/fuse-webinars/cxf-webinars
mvn install
This command builds all of the demonstrations under the cxf-webinars
directory (where the demonstrations are defined to be submodules of the
cxf-webinars/pom.xml project). While Maven is building the demonstration
code, it downloads whatever dependencies it needs from the Internet and installs them in the
local Maven repository.
Start and configure the Fuse ESB Enterprise container as follows:
(Optional) If your local Maven repository is in a non-standard location, you might need to edit the Fuse ESB Enterprise configuration to specify your custom location. Edit the
file and set theFuseEsbInstallDir/etc/org.ops4j.pax.url.mvn.cfgorg.ops4j.pax.url.mvn.localRepositoryproperty to the location of your local Maven repository:# # Path to the local maven repository which is used to avoid downloading # artifacts when they already exist locally. # The value of this property will be extracted from the settings.xml file # above, or defaulted to: # System.getProperty( "user.home" ) + "/.m2/repository" # #org.ops4j.pax.url.mvn.localRepository= org.ops4j.pax.url.mvn.localRepository=file:E:/Data/.m2/repository
Launch the Fuse ESB Enterprise container. Open a new command prompt, change directory to
, and enter the following command:FuseEsbInstallDir/binservicemix
For convenience, each of the demonstrations can be deployed into the Fuse ESB Enterprise container as an Apache Karaf feature (which automatically installs any required dependencies along with the demonstration bundle). But first, you must specify the location of the features repository, by entering the following console command:
karaf@root> features:addUrl mvn:org.fusesource.sparks.fuse-webinars.cxf-webinars/customer-features/
Version/xmlWhere
Versionis the current version of the demonstration package (see the value of theproject/versionelement in thefile).DemoDir/src/pom.xml
The following features are now available from the Fuse ESB Enterprise console (where you can enter the
command, features:list | grep customer to check the status of these
features):
customer-ws customer-ws-client customer-ws-cxf-payload customer-ws-cxf-pojo customer-ws-cxf-provider
It is now a relatively straightforward task to run each of the demonstrations by installing the relevant features.
For example, to start up the WSDL-first Web service (discussed in WSDL-First Service Implementation), enter the following console command:
karaf@root> features:install customer-ws
To see the Web service in action, start up the sample Web service client (discussed in Implementing a WS Client), by entering the following console command:
karaf@root> features:install customer-ws-client
The bundle creates a thread that invokes the Web service once a second and logs the response. View the log by entering the following console command:
karaf@root> log:tail -n 4
You should see log output like the following:
18:03:58,609 | INFO | qtp5581640-231 | CustomerServiceImpl | ? ? | 218 - org.fusesource.sparks.fuse-webinars.cxf-webinars.customer-ws-osgi-bundle - 1.1.1 | Getting status for custome r 1234 18:03:58,687 | INFO | invoker thread. | ClientInvoker | ? ? | 219 - org.fusesource.sparks.fuse-webinars.cxf-webinars.customer-ws-client - 1.1.1 | Got back: status = Active, stat usMessage = In the park, playing with my frisbee. 18:04:00,687 | INFO | qtp5581640-232 | CustomerServiceImpl | ? ? | 218 - org.fusesource.sparks.fuse-webinars.cxf-webinars.customer-ws-osgi-bundle - 1.1.1 | Getting status for custome r 1234 18:04:00,703 | INFO | invoker thread. | ClientInvoker | ? ? | 219 - org.fusesource.sparks.fuse-webinars.cxf-webinars.customer-ws-client - 1.1.1 | Got back: status = Active, stat usMessage = In the park, playing with my frisbee.
To stop viewing the log, type the interrupt character (usually Ctrl-C).
To stop the client, first discover the client's bundle ID using the
osgi:list console command. For example:
karaf@root> list | grep customer-ws-client [ 219] [Active ] [ ] [Started] [ 60] customer-ws-client (1.1.1)
You can then stop the client using the osgi:stop console command. For
example:
karaf@root> stop 219
To shut down the container completely, enter the following console command:
karaf@root> shutdown -f








