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

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

It can be run using Maven.

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
  http://localhost:8080/camel-example-tomcat-2.7

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

For the latest & greatest documentation on how to use this example please see
  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!



