# Camel Router with Kotlin Project

A simple example that uses Kotlin programming language to define a little Camel route.

The Camel route listen on HTTP port 8080 and return back a constant response.

### How to run

To build this project use

    mvn install

To run this project

    mvn exec:java
    
You can then open the following url from a web browser: <http://localhost:8080>


### Forum, Help, etc

If you hit an 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!