Camel Servlet and Apache Tomcat example
=======================================

An example which shows how to use the Camel Servlet with Apache Tomcat.

You will need to package this example first:
  mvn package

To run the example deploy it in Apache Tomcat by copying the .war to the
deploy folder of Apache Tomcat.

And then hit this url from a webbrowser which has further
instructions (use correct version number)
  http://localhost:8080/camel-example-servlet-tomcat-{version}

The servlet is located at (use correct version number)
  http://localhost:8080/camel-example-servlet-tomcat-{version}/camel/hello

This example is documented at
  http://camel.apache.org/servlet-tomcat-example.html

If you hit any problems please let us know on the Camel Forums
  http://camel.apache.org/discussion-forums.html

Please help us make Apache Camel better - we appreciate any feedback you may
have.  Enjoy!

------------------------
The Camel riders!
