Camel Servlet and Apache Tomcat without Spring example
======================================================

An example which shows how to use the Camel Servlet with Apache Tomcat,
without using the Spring Framework.

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-no-spring-{version}

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

This example is documented at
  http://camel.apache.org/servlet-tomcat-example-no-spring.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!