== REST DSL / Servlet Example - CDI

=== Introduction

This example illustrates the Camel REST DSL being used in a Java
application that uses CDI as dependency injection framework.

The example uses the
http://camel.apache.org/servlet.html[`+camel-servlet+`] component as the
underlying HTTP engine to service REST APIs defined with the Camel REST
DSL.

This example uses JBoss Weld as the minimal CDI container to run the
application, and is deployed in Jetty as Servlet engine, though you can
run the application in any CDI compliant container and Servlet
container.

=== Build

You can build this example using:

[source,sh]
----
$ mvn package
----

=== Run

You can run this example using:

[source,sh]
----
$ mvn jetty:run
----

When the Camel application runs, you should see the following messages
being logged to the console, e.g.:

....
2016-01-29 18:52:57,591 [main           ] INFO  servletWeldServlet        - WELD-ENV-001008: Initialize Weld using ServletContainerInitializer
2016-01-29 18:52:58,313 [main           ] INFO  servletJetty              - WELD-ENV-001200: Jetty 7.2+ detected, CDI injection will be available in Servlets and Filters. Injection into Listeners should work on Jetty 9.1.1 and newer.
2016-01-29 18:52:58,885 [main           ] INFO  CdiCamelExtension         - Camel CDI is starting Camel context [hello]
2016-01-29 18:52:58,886 [main           ] INFO  DefaultCamelContext       - Apache Camel 2.17.0 (CamelContext: hello) is starting
2016-01-29 18:52:59,237 [main           ] INFO  DefaultCamelContext       - Route: route1 started and consuming from: Endpoint[servlet:/say/hello?httpMethodRestrict=GET]
2016-01-29 18:52:59,242 [main           ] INFO  DefaultCamelContext       - Route: route2 started and consuming from: Endpoint[servlet:/say/hello/%7Bname%7D?httpMethodRestrict=GET]
2016-01-29 18:52:59,242 [main           ] INFO  DefaultCamelContext       - Total 2 routes, of which 2 is started.
2016-01-29 18:52:59,243 [main           ] INFO  DefaultCamelContext       - Apache Camel 2.17.0 (CamelContext: hello) started in 0.357 seconds
2016-01-29 18:52:59,439 [main           ] INFO  servletWeldServlet        - WELD-ENV-001006: org.jboss.weld.environment.servlet.EnhancedListener used for ServletContext notifications
2016-01-29 18:52:59,439 [main           ] INFO  servletWeldServlet        - WELD-ENV-001009: org.jboss.weld.environment.servlet.Listener used for ServletRequest and HttpSession notifications
2016-01-29 18:52:59,471 [main           ] INFO  CamelHttpTransportServlet - Initialized CamelHttpTransportServlet[name=CamelServlet, contextPath=]
[INFO] Started ServerConnector@63f7f62{HTTP/1.1}{0.0.0.0:8080}
[INFO] Started @12857ms
[INFO] Started Jetty Server
....

Then you can open the following URL into your Web browser,
http://localhost:8080/camel/say/hello/, and being responded with
`+Hello World!+`.

Otherwise, in a separate prompt, by running:

....
curl http://localhost:8080/camel/say/hello/Antonin
....

You should being responded with the following message:

....
Hello Antonin, I'm CamelContext(hello)!
....

And see the following message being logged by the Camel application:

....
016-01-29 19:03:20,293 [tp1211352799-18] INFO  route2 - Hello Antonin, I'm CamelContext(hello)!
....

The Camel application can be stopped pressing ctrl+c in the shell.

=== Help and contributions

If you hit any problem using Camel or have some feedback, then please
https://camel.apache.org/support.html[let us know].

We also love contributors, so
https://camel.apache.org/contributing.html[get involved] :-)

The Camel riders!
